• 实验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;
        }

    运行结果:(截图)

     

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

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

    实验评语

     

    实验成绩

     

    指导教师签名:                    

  • 相关阅读:
    SimpleAdapter的用法
    ListView中加载大量的图片
    用PreferenceActivity做一个标准的设置界面
    用代码构造PreferenceScreen
    工具类之Condition
    工具类之Mutex
    Linux初探之如何查看帮助文档自学命令[网址]
    linux基础之帮助文档---常用的命令[转载]
    Linux 下常见的四款chm查看器比较[转载+亲测可用]
    Linux(Ubuntu)下MySQL的安装与配置[转载+亲测]
  • 原文地址:https://www.cnblogs.com/yewenzhao/p/5453437.html
Copyright © 2020-2023  润新知