android控制手机系统声音

     手机声音包含系统声音和媒体声音。在程序中,往往需要对手机系统声音进行控制,可以通过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);
    }
    
}


你可能感兴趣的:(android移动开发)