首页 > 代码库 > Android提供的系统服务之--AudioManager(音频管理器)

Android提供的系统服务之--AudioManager(音频管理器)

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(音频管理器)