1.声音管理常用类
2.控制手机音量及响铃模式
1.布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/voiceOn"
android:src="@drawable/volume_normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageButton
android:id="@+id/voiceOff"
android:src="@drawable/volume_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageButton
android:id="@+id/voiceBrate"
android:src="@drawable/volume_shack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageButton
android:id="@+id/voiceLower"
android:src="@drawable/volume_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageButton
android:id="@+id/voiceRaise"
android:src="@drawable/volume_reduce"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
2.主activity
public class MainActivity extends AppCompatActivity {
private ImageButton voiceon,voiceoff,voicebrate,voiceraise,voicelower;
private AudioManager audio=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化组件
initButton();
//初始化AudioManager组件
audio= (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//注册监听按钮事件
voiceon.setOnClickListener(new VoiceOnOnClieckListenrImpl());
voiceoff.setOnClickListener(new VoiceOffOnClieckListenrImpl());
voicebrate.setOnClickListener(new VoiceBrateOnClieckListenrImpl());
voiceraise.setOnClickListener(new VoiceRaiseOnClieckListenrImpl());
voicelower.setOnClickListener(new VoiceLowerOnClieckListenrImpl());
}
//播放声音
private void playAudio(){
//创建播放器对象
MediaPlayer mediaPlayer=MediaPlayer.create(this,R.raw.laught);
mediaPlayer.setLooping(true);//设置循环播放
try {
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
}
//初始化组件
private void initButton(){
voiceon=findViewById(R.id.voiceOn);
voiceoff=findViewById(R.id.voiceOff);
voicebrate=findViewById(R.id.voiceBrate);
voiceraise=findViewById(R.id.voiceRaise);
voicelower=findViewById(R.id.voiceLower);
}
//按钮voice on响应事件
private class VoiceOnOnClieckListenrImpl implements View.OnClickListener{
@Override
public void onClick(View v) {
//设置铃声模式
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
Toast.makeText(MainActivity.this, "开启铃声", Toast.LENGTH_SHORT).show();
}
}
//按钮voice off响应事件
private class VoiceOffOnClieckListenrImpl implements View.OnClickListener{
@Override
public void onClick(View v) {
audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Toast.makeText(MainActivity.this, "关闭铃声", Toast.LENGTH_SHORT).show();
}
}
//按钮voice bravte响应事件
private class VoiceBrateOnClieckListenrImpl implements View.OnClickListener{
@Override
public void onClick(View v) {
audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
Toast.makeText(MainActivity.this, "开启震动模式", Toast.LENGTH_SHORT).show();
}
}
//按钮voice on响应事件
private class VoiceLowerOnClieckListenrImpl implements View.OnClickListener{
@Override
public void onClick(View v) {
audio.adjustVolume(AudioManager.ADJUST_LOWER,0);
Toast.makeText(MainActivity.this, "音量减少", Toast.LENGTH_SHORT).show();
}
}
//按钮voice on响应事件
private class VoiceRaiseOnClieckListenrImpl implements View.OnClickListener{
@Override
public void onClick(View v) {
audio.adjustVolume(AudioManager.ADJUST_RAISE,0);
Toast.makeText(MainActivity.this, "音量增加", Toast.LENGTH_SHORT).show();
}
}
}
结果为