标签:android audiomanager 音频管理 service 系统服务
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下载
Android提供的系统服务之--AudioManager(音频管理器)
标签:android audiomanager 音频管理 service 系统服务
原文地址:http://blog.csdn.net/coder_pig/article/details/40819759