您的位置:首页 > 移动开发 > Android开发

android控制手机系统声音

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: