音量调节的简单实现

android 实现音量调节_第1张图片
一:注册广播
注册系统音量广播,这里采用动态注册方式

 /**     * 动态注册广播     *      */    private void myRegisterReceiver() {        MyVolumeReceiver mVolumeReceiver = new MyVolumeReceiver();        IntentFilter filter = new IntentFilter();//new一个过滤器        filter.addAction("android.media.VOLUME_CHANGED_ACTION");//添加Action(添加一个声音广播)       /*       参数一:BroadcastReceiver(自定义一个),用于接收到广播所做操作       参数二:过滤器        */        registerReceiver(mVolumeReceiver, filter);//注册广播接收器    }

二:获得一个audioManager

audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);

三:获得系统最大音量值和当前音量值

maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);  //获取系统最大音量currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);  //获取当前值

四:将最大音量值和当前音量值设置到seekBar

sound_progressBar.setMax(maxVolume);//把seekbar的最大值设为 系统最大音量sound_progressBar.setProgress(currentVolume);//设置当前音量所占进度

五:(seekBar)音量条的拖动监听

  //音量条的拖动监听        sound_progressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {//音量滑动监听            @Override            public void onStopTrackingTouch(SeekBar seekBar) {            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {                // TODO Auto-generated method stub            }            @Override            public void onProgressChanged(SeekBar seekBar, int progress,                                          boolean fromUser) {                /*                 参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)                 参数2:调整音量大小值(把seekBar拖动到的进度值设为音量值)                 参数3:可选的标志位                 */                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);//直接设置音量大小            }        });

六:音量+,音量- 的监听

//音量减的监听        ib_soundLess.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume-2, 0);//直接设置音量大小            }        });        //音量加的监听        ib_soundplus.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume+2, 0);//直接设置音量大小            }        });

七:广播的处理操作

    private class MyVolumeReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            //如果音量发生变化则更改seekbar的位置            if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")) {                currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);// 当前的媒体音量                sound_progressBar.setProgress(currentVolume);//系统音量发生改变时,seekbar也更新            }        }    }

更多相关文章

  1. 深入理解Android消息处理系统 Handler
  2. android 跳转到系统相关应用的方法
  3. Android调用系统相机拍摄视频以及获取缩略图
  4. Android Donut 系统烧写到开发板,脱离NFS启动
  5. 文件系统中的保留空间
  6. Android中调用系统函数查找联系人
  7. android 改变系统默认动态壁纸
  8. 【Android】遍历系统中所有应用程序

随机推荐

  1. Android(安卓)拿出后台打印数据
  2. Android(安卓)Audio 的播放
  3. android中使用shader实现渐变效果
  4. Android 饺子播放器
  5. android下的ramdisk
  6. Android Studio2.2.3 通过JNI引用ffmpeg
  7. Android学习笔记之网络接口(Http接口,Apach
  8. Android界面设计的一点体会
  9. ANDROID 流媒体服务
  10. Android(安卓)应用层读取底层节点信息