随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
有时候,程序需要管理系统音量,或者直接让系统静音,这就可以借助AudioManager来实现。在通过getSystemService(Service.AUDIO_SERVICE)方法获取系统音频管理器(AudioManager)后,就可以调用AudioManager如下常用方法控制手机音频了:
下面用一个简单示例来演示AudioManager的控制手机音频,代码如下:
Activity:
package com.guyun.audiotest;
import android.app.Activity;
import android.app.Service;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;
public class AudioTestActivity extends Activity {
// 声明AudioManager对象
private AudioManager aManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio_test);
// 获取系统的音频服务
aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
// 获得ToggleButton按钮
ToggleButton tb = (ToggleButton) findViewById(R.id.activity_audio_test_tb);
tb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// 指定调节音乐的音频,根据isChecked确定是否需要静音
aManager.setStreamMute(AudioManager.STREAM_MUSIC, isChecked);
}
});
}
public void click(View v) {
switch (v.getId()) {
case R.id.activity_audio_test_btn_play:
// 初始化MediaPlayer对象,准备播放音乐
MediaPlayer mplayer = MediaPlayer.create(AudioTestActivity.this,
R.raw.girl);
// 设置循环播放
mplayer.setLooping(true);
// 开始播放
mplayer.start();
break;
case R.id.activity_audio_test_btn_up:
// 指定调节音乐的音频,增大音量,而且显示音量图形示意
aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
break;
case R.id.activity_audio_test_btn_down:
// 指定调节音乐的音频,降低音量,而且显示音量图形示意
aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
}
}
}
布局XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/activity_audio_test_btn_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="播放" />
<Button
android:id="@+id/activity_audio_test_btn_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="增大音量" />
<Button
android:id="@+id/activity_audio_test_btn_down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="减少音量" />
<ToggleButton
android:id="@+id/activity_audio_test_tb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="设置为静音"
android:textOn="取消静音" />
</LinearLayout>