音量调节与静音
public class MainActivity extends Activity implements OnClickListener { private TextView tv; private MediaPlayer mediaPlayer=null; //播放器 private AudioManager audioManager=null; //声音管理者 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_content2); Button btnLower=(Button) findViewById(R.id.btnLower); Button btnUpper=(Button) findViewById(R.id.btnUpper); Switch sw=(Switch) findViewById(R.id.switch1); btnLower.setOnClickListener(this); btnUpper.setOnClickListener(this); audioManager=(AudioManager)getSystemService(Service.AUDIO_SERVICE); sw.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //如果是选中状态就静音,默认为没有选中,如果是静音状态增加与降低音量都没有效果 audioManager.setStreamMute(AudioManager.STREAM_MUSIC,isChecked); //设置是否静音 } }); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnUpper://增多音量(静音状态按下没效果) //adjustStreamVolume: 调整指定声音类型的音量 audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); //调高声音 break; case R.id.btnLower://减少音量(静音状态按下没效果) //第一个参数:声音类型 //第二个参数:调整音量的方向 //第三个参数:可选的标志位 audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);//调低声音 break; } } }
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Switch android:id="@+id/switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="打开状态静音" android:textOff="正常" android:textSize="30sp" android:text="音量设置 " /> <Button android:id="@+id/btnUpper" android:text="增大音量" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btnLower" android:text="减小音量" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>