ITPub博客

首页 > 移动开发 > ANDROID > AudioManager

AudioManager

原创 ANDROID 作者:山有木xi 时间:2020-06-09 09:50:57 0 删除 编辑

当我们在听歌时,当我们在刷小视频时,当我们在看动漫、在看电影、在追剧时,不知道是否有人注意到,在这些软件中滑动屏幕或者拖动滑动条就可以直接控制音量,而不需要去按手机硬件上的音量键

在某些时候,程序需要管理系统音量,或者让系统直接静音,这就要借助于Android提供的AudioManager来实现了

先调用 getSysytemService方法来获取系统的音频管理器,然后再调用 AudioManager的方法控制手机音频即可

在举例子之前,需要来了解一下AudioManager的大致用法

adjustStreamVolume(int streamType,int direction,int flag):调用手机指定类型的声音, streamType的参数如下:

  1. STREAM_ALARM:手机闹铃的声音

  2. STREAM_DTMF:DTMF音调的声音

  3. STREAM_MUSIC:手机音乐的声音

  4. STREAM_NOTIFICATION:系统提示的声音

  5. STREAM_RING:电话铃声的声音

  6. ...

接下来,来看一下具体的例子

在xml中先创建几个button,然后打开MainActivity

首先需要在 onCreate创建各个button的实例和调用 getSysytemService方法来获取系统的音频管理器

public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  aManager = (AudioManager) getSystemService(
    Service.AUDIO_SERVICE);
  play = (Button) findViewById(R.id.play);
  up = (Button) findViewById(R.id.up);
  down = (Button) findViewById(R.id.down);
  mute = (ToggleButton) findViewById(R.id.mute);
  }

onCreate中继续实现 播放音乐

play.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View source)
   {
    MediaPlayer mPlayer = MediaPlayer.create(
      MainActivity.this, R.raw.earth);
    mPlayer.setLooping(true);
    mPlayer.start();
   }
  });

onCreate 中继续实 增大音量

up.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View source)
   {
    aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
      AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
   }
  });

onCreate 中继续实 减小音量

down.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View source)
   {
    aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
      AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
   }
  });

最后在onCreat中实现 静音

mute.setOnCheckedChangeListener(new OnCheckedChangeListener()
  {
   @Override
   public void onCheckedChanged(CompoundButton source,
           boolean isChecked)
   {
    // 指定调节音乐的音频,根据isChecked确定是否需要静音
    aManager.setStreamMute(AudioManager.STREAM_MUSIC,
      isChecked);
   }
  });


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69917874/viewspace-2697030/,如需转载,请注明出处,否则将追究法律责任。

上一篇: HDFS的体系结构
全部评论
Oracle OCA(Java),IBM高级工程师认证,中国软件行业人才(高级c语言),高级Android工程师,对数据库并发与性能调优也有一定了解

注册时间:2019-04-25

  • 博文量
    83
  • 访问量
    236318