Android--AudioManager控制音量

首先,让我们来看下本程序的实现截图:


图中的五个ImageButton实现不同的功能:

1.调大音量

2.减小音量

3.调整手机模式为正常

4.调整手机模式为静音

5.调整手机模式为震动


下面给出实现的代码:

public class EX07_08 extends Activity {
  /* 变量宣告 */ 
  private ImageView myImage;
  private ImageButton downButton; 
  private ImageButton upButton;
  private ImageButton normalButton;
  private ImageButton muteButton; 
  private ImageButton vibrateButton; 
  private ProgressBar myProgress; 
  private AudioManager audioMa;
  private int volume=0; 
  @Override
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    /* 物件初始化 */ 
    audioMa = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    myImage = (ImageView)findViewById(R.id.myImage); 
    myProgress = (ProgressBar)findViewById(R.id.myProgress);
    downButton = (ImageButton)findViewById(R.id.downButton); 
    upButton = (ImageButton)findViewById(R.id.upButton); 
    normalButton = (ImageButton)findViewById(R.id.normalButton);
    muteButton = (ImageButton)findViewById(R.id.muteButton); 
    vibrateButton = (ImageButton)findViewById(R.id.vibrateButton);
    /* 设定初始的手机音量 */
    volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
    myProgress.setProgress(volume);
    /* 设定初始的声音模式 */ 
    int mode=audioMa.getRingerMode(); 
    if(mode==AudioManager.RINGER_MODE_NORMAL) {
      myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal));
      } 
    else if(mode==AudioManager.RINGER_MODE_SILENT) { 
      myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute)); 
      } 
    else if(mode==AudioManager.RINGER_MODE_VIBRATE) { 
      myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate)); 
      }
    /* 音量调小声的Button */ 
    downButton.setOnClickListener(new Button.OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
        /* 设定音量调小声一格 */ 
        audioMa.adjustVolume(AudioManager.ADJUST_LOWER, 0); 
        volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
        myProgress.setProgress(volume); 
        /* 设定调整后声音模式 */ 
        int mode=audioMa.getRingerMode();
        if(mode==AudioManager.RINGER_MODE_NORMAL) { 
          myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal)); 
          } 
        else if(mode==AudioManager.RINGER_MODE_SILENT) {
          myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute));
          } 
        else if(mode==AudioManager.RINGER_MODE_VIBRATE) { 
          myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate));
          }
        } 
      });
    /* 音量调大声的Button */ 
    upButton.setOnClickListener(new Button.OnClickListener() { 
      @Override
      public void onClick(View arg0) {
        /* 设定音量调大声一格 */
        audioMa.adjustVolume(AudioManager.ADJUST_RAISE, 0); 
        volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
        myProgress.setProgress(volume); 
        /* 设定调整后的声音模式 */ 
        int mode=audioMa.getRingerMode();
        if(mode==AudioManager.RINGER_MODE_NORMAL) { 
          myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal)); 
          } 
        else if(mode==AudioManager.RINGER_MODE_SILENT) { 
          myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute)); 
          } 
        else if(mode==AudioManager.RINGER_MODE_VIBRATE) {
          myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate)); 
          }
        } 
      });
    /* 调整铃声模式为正常模式的Button */ 
    normalButton.setOnClickListener(new Button.OnClickListener() { 
      @Override
      public void onClick(View arg0) {
        /* 设定铃声模式为NORMAL */ 
        audioMa.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        /* 设定音量与声音模式 */
        volume=audioMa.getStreamVolume(AudioManager.STREAM_RING);
        myProgress.setProgress(volume); 
        myImage.setImageDrawable(getResources() .getDrawable(R.drawable.normal)); 
        } 
      });
    /* 调整铃声模式为静音模式的Button */ 
    muteButton.setOnClickListener(new Button.OnClickListener() { 
      @Override
      public void onClick(View arg0) {
        /* 设定铃声模式为SILENT */
        audioMa.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
        /* 设定音量与声音状态 */
        volume=audioMa.getStreamVolume(AudioManager.STREAM_RING); 
        myProgress.setProgress(volume); 
        myImage.setImageDrawable(getResources() .getDrawable(R.drawable.mute)); 
        } 
      });
    /* 调整铃声模式为震动模式的Button */ 
    vibrateButton.setOnClickListener(new Button.OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
        /* 设定铃声模式为VIBRATE */
        audioMa.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 
        /* 设定音量与声音状态 */ 
        volume=audioMa.getStreamVolume(AudioManager.STREAM_RING); 
        myProgress.setProgress(volume);
        myImage.setImageDrawable(getResources() .getDrawable(R.drawable.vibrate));
        } 
      }); 
    } 
  }


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值