http://blog.csdn.net/zhudaozhuan/article/details/7366613
手机声音包含系统声音和媒体声音。在程序中,往往需要对手机系统声音进行控制,可以通过AudioManager类达到此效果。虽然是对系统声音进行控制,但是不需要注册任何系统权限。
- package com.demo.setsystemaudio;
- import android.app.Activity;
- import android.content.Context;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.CompoundButton;
- import android.widget.CompoundButton.OnCheckedChangeListener;
- import android.widget.ToggleButton;
- /**
- * 在第三方应用程序中,可以控制手机系统声音,系统声音包括:音乐,铃声,闹铃声等。
- * 本demo主要是控制系统音乐声音,包含系统静音,系统音量加和系统音量减。
- * @author Jacky.zhu
- *
- */
- public class SetSystemAudioActivity extends Activity {
- private Button playVideoButton; // 播放视频按钮
- private ToggleButton muteButton; // 系统静音开关按钮
- private Button audiaoIncButton; // 系统音量加按钮
- private Button audioDecButton; // 系统音量减按钮
- private AudioManager audioManager; // 系统声音管理类
- private MediaPlayer mPlayer; // 媒体播放器
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // 实例化控件
- playVideoButton = (Button) findViewById(R.id.play_video);
- muteButton = (ToggleButton) findViewById(R.id.audio_mute);
- audiaoIncButton = (Button) findViewById(R.id.audio_inc);
- audioDecButton = (Button) findViewById(R.id.audio_dec);
- // 实例化系统声音管理类
- audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
- // 播放视频
- playVideoButtonListener();
- // 系统静音按钮监听器
- muteButtonListener();
- // 系统声音加监听器
- audioIncButtonListener();
- // 系统声音减监听器
- audioDecButtonListener();
- }
- private void playVideoButtonListener(){
- mPlayer = MediaPlayer.create(this, R.raw.mars);
- mPlayer.setLooping(true);
- playVideoButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- mPlayer.start();
- }
- });
- }
- private void muteButtonListener(){
- muteButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- audioManager.setStreamMute(AudioManager.STREAM_MUSIC, !isChecked);
- }
- });
- }
- private void audioIncButtonListener(){
- audiaoIncButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE , AudioManager.FLAG_SHOW_UI);
- }
- });
- }
- private void audioDecButtonListener(){
- audioDecButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER , AudioManager.FLAG_SHOW_UI);
- }
- });
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if( keyCode == KeyEvent.KEYCODE_BACK ){
- mPlayer.stop();
- mPlayer = null;
- finish();
- }
- return super.onKeyDown(keyCode, event);
- }
- }