歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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));
        }
      });
    }
  }

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved