在onCreate方法中设置控制系统声音:
参考:android AudioManager类 详解
import android.media.MediaPlayer;
private void PlayAlarmRing() {
try {
if (mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC) != 0) {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength()); mMediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override public boolean onError(MediaPlayer mp, int what, int extra) {
// TODO Auto-generated method stub return false; } });
mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub mMediaPlayer.start(); } });
mMediaPlayer.setLooping(true); mMediaPlayer.prepare();
}
catch (IllegalStateException e) { e.printStackTrace(); }
catch (Exception e) { // TODO: handle exception }
} private void StopAlarmRing() {
if (mMediaPlayer != null) {
mMediaPlayer.stop(); mMediaPlayer.release(); mMediaPlayer = null;
try { afd.close(); } catch (Exception e) { // TODO: handle exception }
} mAudioManager.setMode(AudioManager.MODE_NORMAL);
mAudioManager.setSpeakerphoneOn(false); if (mDefaultVolume != -1) {
mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, mDefaultVolume, 0);
}
}