实验7 BindService模拟通信

实验报告

课程名称

基于Android平台移动互联网开发

实验日期

4.21

实验项目名称

BindService模拟通信

实验地点

S3010

实验类型

□验证型    √设计型    □综合型

学  时

 

一、实验目的及要求(本实验所涉及并要求掌握的知识点)

实现启动端和BindService之间的双向通信

实现从启动端传递一个数据至BindService端;

实现使用BindService服务播放项目源文件中的音乐;

实现在启动端通过“增加”和“降低”两个按钮控制音频音量大小。

实现在启动端通过“暂停”按钮控制音频暂停播放。

二、实验环境(本实验所使用的硬件设备和相关软件)

(1)PC机 

(2)操作系统:Windows XP 

(3)软件: Eclipse, JDK1.6,Android SDK,ADT

三、实验内容及步骤

android audioManager获取音量:

先获取AudioManager实例,

然后调节音量

四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

代码:

public class BackmusicService extends Service{
MediaPlayer mp=new MediaPlayer();
Mbinder binder=new Mbinder();
AudioManager  audioManager;

boolean isSilent=false;

    public void setsilent(boolean isSilent){
        if(isSilent){
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0);    
            }else{
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,1000,1000);
            }

    }
    public void setvolum(int setting){
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,setting,100);

    }
    public void onCreate() {
        // TODO Auto-generated method stub
        File file=new File(Environment.getExternalStorageDirectory().getPath()+"/nanshannan.mp3");
        if(file.exists()){
            try {
                mp.setDataSource(file.getAbsolutePath());
                mp.prepare();
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SecurityException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             audioManager=(AudioManager) getSystemService(Context.AUDIO_SERVICE);
            mp.start();
        }
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        mp.start();
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        if(mp.isPlaying()){
            mp.stop();
            mp.release();
            
        }
    }


    public class Mbinder extends Binder{
        public BackmusicService getBackmusicService(){
            return BackmusicService.this;
            
        }
    }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return binder;
    }

 

运行结果:(截图)

 

五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

    这次的实验比较复杂,代码没有弄懂意思,所以没能够实现实验内容,希望老师能在讲解多次。

实验评语

 

实验成绩

 

指导教师签名:                    

posted @ 2016-05-02 22:56  05叶文钊  阅读(207)  评论(0编辑  收藏  举报