实验7 BindService模拟通信
2016-05-02 21:27 24郑杨华 阅读(219) 评论(0) 编辑 收藏 举报实验报告
课程名称 |
基于Android平台移动互联网开发 |
实验日期 |
2016.04.20 |
||
实验项目名称 |
BindService模拟通信 |
实验地点 |
S3002 |
||
实验类型 |
□验证型 √设计型 □综合型 |
学 时 |
6 |
||
一、 实验目的及要求(本实验所涉及并要求掌握的知识点) |
|||||
1、实现从启动端传递一个数据至BindService端; 2、实现使用BindService服务播放项目源文件中的音乐; 3、实现在启动端通过“增加”和“降低”两个按钮控制音频音量大小。 4、实现在启动端通过“暂停”按钮控制音频暂停播放。 |
|||||
二、实验环境(本实验所使用的硬件设备和相关软件) |
|||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT |
|||||
三、实验内容及步骤 |
|||||
实现启动端和BindService之间的双向通信 1) adjustVolume(int direction, int flags):用来控制手机音量大小,当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。 2) adjustStreamVolume(intstreamType, int direction, intflags):(以步长)调节手机音量大小 3) setStreamVolume(intstreamType, int index, intflags):直接设置音量大小 4) getStreamVolume(intstreamType):取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。 5) setStreamMute(intstreamType, boolean state):设置静音 |
|||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图) |
|||||
代码: xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:id="@+id/btnPlay" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="播放音乐" />
<Button android:id="@+id/btnPause" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="暂停音乐" />
<LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> <Button android:id="@+id/btnUpper" android:text="音量+" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/btnLower" android:text="音量—" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
主要的main public class MainActivity extends Activity { private Button btnPlay=null, btnUpper=null, btnLower=null,btnPause=null; private MediaPlayer mediaPlayer=null; private AudioManager audioManager=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
audioManager=(AudioManager)getSystemService(Service.AUDIO_SERVICE);
btnPlay=(Button)findViewById(R.id.btnPlay); btnPause=(Button)findViewById(R.id.btnPause); btnUpper=(Button)findViewById(R.id.btnUpper); btnLower=(Button)findViewById(R.id.btnLower);
btnPlay.setOnClickListener(listener); btnUpper.setOnClickListener(listener); btnLower.setOnClickListener(listener); btnPause.setOnClickListener(listener); }
View.OnClickListener listener=new View.OnClickListener(){ public void onClick(View v) { @SuppressWarnings("unused") Button btn=(Button)v; switch (v.getId()) { case R.id.btnPlay: mediaPlayer=MediaPlayer.create(MainActivity.this, R.raw.nanshannan); mediaPlayer.setLooping(true); mediaPlayer.start(); break; case R.id.btnPause: mediaPlayer.pause(); break; case R.id.btnUpper: audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); break; case R.id.btnLower: audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI); break; } } }; } 运行结果:(截图)
|
|||||
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见) |
|||||
这次实验老师和我们说相对比较难,所以做这个实验是比较有压力的,有些害怕,因为我对代码就没有太大兴趣,难度加大更不想去学了。 这次实验我先看老师给的BindServic文档资料,再运行代码,可能是没有真正理解,会觉得比较乱,不知道哪一些是绑定,哪一些传递通信。按照自己的理解是,首先获取AudioManager,然后通过按钮的监听,向AudioManager获取音量信息,再调节音量大小。 当按照自己理解,结合查询的资料,实现了音量调节功能,心里还是很开心的。 |
|||||
实验评语 |
|
||||
实验成绩 |
|
指导教师签名: 年 月 日 |
|||