Android提供的系统服务之--AudioManager(音频管理器)
----转载请注明出处:coder-pig
AudioManager相关简介与常用方法图:
简单的使用例子:
使用Mediaplayer播放音乐,通过AudioManager调节音量大小与静音:
这里,我们需要把要播放的音频文件放到res下的raw文件夹,这个文件夹默认是没有的,需要自己创建哦!
用来放原生资源的,就是打包编译的时候不会把他变成二进制文件!!!
先来看看效果图吧:
就是播放音乐,然后调高音量的时候可以看到滑动条,然后调低音量那里就设置成了声音,不显示滑动条:
这个是有adjustStreamVolume()方法的第三个参数决定的!
好了开始代码的编写吧:
简单的布局:activity_main.xml:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/LinearLayout1"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context="com.jay.example.audiomanagerdemo.MainActivity" >
- <Button
- android:id="@+id/btnstart"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="播放" />
- <Button
- android:enabled="false"
- android:id="@+id/btnstop"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="停止" />
- <Button
- android:id="@+id/btnhigher"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="调高音量" />
- <Button
- android:id="@+id/btnlower"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="调低音量" />
- <Button
- android:id="@+id/btnquite"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="静音" />
- </LinearLayout>
接着是MainActivity.java:
- package com.jay.example.audiomanagerdemo;
- import android.app.Activity;
- import android.app.Service;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class MainActivity extends Activity implements OnClickListener{
- private MediaPlayer mePlayer;
- private AudioManager aManager;
- private Button btnstart;
- private Button btnstop;
- private Button btnhigher;
- private Button btnlower;
- private Button btnquite;
- //定义一个标志用来标示是否点击了静音按钮
- private int flag = 1;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- btnstart = (Button) findViewById(R.id.btnstart);
- btnstop = (Button) findViewById(R.id.btnstop);
- btnhigher = (Button) findViewById(R.id.btnhigher);
- btnlower = (Button) findViewById(R.id.btnlower);
- btnquite = (Button) findViewById(R.id.btnquite);
- //获得系统的音频对象
- aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
- //初始化mediaplayer对象,这里播放的是raw文件中的mp3资源
- mePlayer = MediaPlayer.create(MainActivity.this, R.raw.one);
- //设置循环播放:
- mePlayer.setLooping(true);
- btnstart.setOnClickListener(this);
- btnstop.setOnClickListener(this);
- btnhigher.setOnClickListener(this);
- btnlower.setOnClickListener(this);
- btnquite.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btnstart:
- btnstop.setEnabled(true);
- mePlayer.start();
- btnstart.setEnabled(false);
- break;
- case R.id.btnstop:
- btnstart.setEnabled(true);
- mePlayer.pause();
- btnstop.setEnabled(false);
- break;
- case R.id.btnhigher:
- // 指定调节音乐的音频,增大音量,而且显示音量图形示意
- aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
- AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
- break;
- case R.id.btnlower:
- // 指定调节音乐的音频,降低音量,只有声音,不显示图形条
- aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
- AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND);
- break;
- case R.id.btnquite:
- // 指定调节音乐的音频,根据isChecked确定是否需要静音
- flag *= -1;
- if(flag == -1)
- {
- aManager.setStreamMute(AudioManager.STREAM_MUSIC,true);
- btnquite.setText("取消静音");
- }
- else
- {
- btnquite.setText("静音");
- aManager.setStreamMute(AudioManager.STREAM_MUSIC,false);
- }
- break;
- }
- }
- }
代码也是非常简单的,这里就不过多的讲解了!
另外还有一点要注意的:如果adjustStreamVolume()的第三个参数你设置了振动(Vibrator),需要在AndroidManifest.xml
中添加这个权限哦!
<uses-permission android:name="android.permission.VIBRATE"/>
本节demo下载:AudioManager简单使用demo下载