`
nanjingjiangbiao_T
  • 浏览: 2739296 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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--开发--音量seekbar制作.rar

    Android系统提供了AudioManager类来管理音频相关的操作,包括音量控制。我们需要在Activity中获取AudioManager实例,并设置音量级别: ```java AudioManager audioManager = (AudioManager) getSystemService(AUDIO...

    Android程序设计-AudioManager介绍.pptx

    在Android程序设计中,AudioManager是一个至关重要的组件,它负责管理设备的音频输出,包括控制音量、处理音频流和管理音频焦点。本篇将详细阐述AudioManager的主要功能及其使用方法。 首先,AudioManager的实例化...

    android 音量控制

    - Android提供了`AudioManager`类来管理设备的音频输出,包括音量控制。通过调用`AudioManager`的方法,我们可以实现程序中动态调整音量: - `adjustVolume(int direction, int flags)`:根据参数`direction`(如`...

    android音量(自定义音量)

    Android 音量控制是 Android 系统中一个非常重要的功能,通过 AudioManager 类可以控制 Android 设备的音量大小,包括铃声、系统音量、音乐音量、提示声音音量等多种音量类型。下面是关于 Android 音量控制的详细...

    Android自定义(四)音量控制器的实现

    首先,我们理解音量控制器在Android系统中的核心功能是调节设备的音频输出级别,包括媒体音量、铃声音量、闹钟音量等。接下来,我们将详细讲解实现这个自定义音量控制器的关键步骤。 1. **创建自定义View** 首先,...

    Android 各种音量的获取

    - **AudioManager**:这是Android提供的用于管理音频流的类,开发者可以通过它来控制和获取系统中的音量。 - **Stream Types**:Android中的音频流被分为不同的类型,每种类型对应不同的应用场景,如通话、铃声、...

    android java 自定义音量键seekbar控制系统的媒体音量和通话音量,可自动实现切换

    在Android开发中,有时我们需要对系统的音量进行自定义控制,比如使用Seekbar来模拟音量调节滑块,同时能够根据不同的场景(如媒体播放、通话中)智能切换控制对应的音量。本教程将深入讲解如何实现这个功能,主要...

    Android 自定义View --- 视频音量调控

    音量的调控还需要与Android系统的音频管理器AudioManager进行交互。我们需要获取AudioManager的实例,然后调用adjustVolume()或setStreamVolume()方法来改变音量。注意,音频流类型(stream type)的选择很重要,...

    android设置系统音量、媒体音量Demo

    在Android平台上,调整系统...总结,Android系统音量和媒体音量的控制涉及到`AudioManager`类的使用,理解其API和音量类别是实现此功能的关键。通过源码分析和实际运行,开发者可以更直观地学习和掌握这一功能的实现。

    Android--MediaPlayDemo

    音量可以通过`AudioManager`调整,进度可以通过`seekTo()`设置`MediaPlayer`的播放位置。 `Android--MediaPlayDemo`这个项目对于初学者来说是一个很好的起点,它演示了如何结合Android的UI组件和多媒体API构建一个...

    android-framework-hal

    - **JAVA层次的接口**:这部分接口通过Java语言编写,例如`AudioManager`,提供了对音频输出设备的选择、音量控制等操作。 #### 7.4 Audio硬件抽象层 - **Audio系统的移植**:HAL层为不同的硬件平台提供了一个统一...

    Android 静音控制 音量控制 减小增大音量.rar

    Android 静音控制 音量控制 减小增大音量的实例源代码,如示图所示,音量控制时候,适时显示音量进度条:  ToggleButton tbMute = (ToggleButton)findViewById(R.id.tbMute);//获得ToggleButton对象  tbMute....

    Android使用AudioManager修改系统音量的方法

    总的来说,Android的AudioManager提供了丰富的功能,使开发者能够灵活地控制应用程序的音频输出。无论是渐进式调整还是直接设置音量,都可以根据需求轻松实现。在编写音量控制功能时,确保考虑用户体验,如添加适当...

    android音量控制

    为了实现音量控制功能,Android提供了AudioManager类,该类提供了大量与音频管理相关的API。例如,`AudioManager.getStreamVolume(int streamType)`可以获取指定类型的音量值,而`AudioManager.setStreamVolume(int ...

    android 音量控制 定时 震动 静音 铃声 情景模式 设置

    在Android系统中,音量控制、定时、震动、静音以及铃声等元素构成了用户交互的重要部分,而情景模式的设置则进一步提升了用户体验。本文将深入探讨这些知识点,并结合一个小型示例进行解析。 首先,音量控制是...

    Android 自定义View (四) 视频音量调控

    1. **音量获取与设置**:使用Android系统的AudioManager服务来获取当前音量,并可以调用其方法改变音量级别。例如,`AudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)`获取音乐流的音量,`AudioManager....

    android设置系统亮度、音量

    在Android操作系统中,控制设备的亮度、音量以及开关功能如GPS和WiFi是常见的操作,这对于用户来说至关重要,因为它们直接影响到设备的使用体验。本文将深入探讨如何在Android平台上实现这些功能。 首先,让我们来...

    android自定义音量调节

    在Android开发中,有时我们可能需要为用户提供更加个性化的...总之,自定义Android音量调节需要结合SeekBar组件、AudioManager服务以及界面设计技巧,通过监听事件并操作音频流,可以打造出具有个性化的音量控制体验。

    Android实现手机音量最大值限制

    在Android系统中,开发者可以通过编程方式来实现对手机音量的控制,包括设定最大音量限制。这样的功能在很多场景下都非常实用,比如避免小孩子过度调整音量导致听力损伤,或者在公共场合防止突然的高音量打扰他人。...

    安卓Android源码——仿ios音量调节的效果.zip

    在Android中,音量控制涉及到多个级别,如媒体音量、闹钟音量、铃声音量和系统音量等。这些音量级别可以通过系统的音量对话框进行调整,也可以通过硬件音量键实现快速调整。而仿iOS音量调节的效果主要关注的是视觉...

Global site tag (gtag.js) - Google Analytics