Android提供的系統服務之–AudioManager(音頻管理器)

Android提供的系統服務之–AudioManager(音頻管理器)

—-轉載請註明出處:coder-pig

AudioManager相關簡介與常用方法圖:

vcD4KPHA+PHN0cm9uZz688rWltcTKudPDwP3X0zo8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+yrnTw01lZGlhcGxheWVysqW3xdL0wNYszai5/UF1ZGlvTWFuYWdlcrX3vdrS9MG/tPPQodPrvrLS9Do8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+1eLA7yzO0sPH0OjSqrDR0qqypbfFtcTS9Ma1zsS8/rfFtb1yZXPPwrXEcmF3zsS8/rzQLNXiuPbOxLz+vNDErMjPysfDu9PQtcQs0OjSqtfUvLq0tL2oxbYhPC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPtPDwLS3xdStyfrXytS0tcQsvs3Kx7TysPyx4NLrtcTKsbrysru74bDRy/ux5LPJtv69+NbGzsS8/iEhITwvc3Ryb25nPjwvcD4KPHA+PGJyPgo8L3A+CjxwPjxzdHJvbmc+z8jAtL+0v7TQp7n7zbywyTo8L3N0cm9uZz48L3A+CjxwPjxpbWcgc3JjPQ==”/uploadfile/Collfiles/20141106/20141106081344152.gif” alt=”\”>

就是播放音樂,然後調高音量的時候可以看到滑動條,然後調低音量那裡就設置成瞭聲音,不顯示滑動條:

這個是有adjustStreamVolume()方法的第三個參數決定的!

好瞭開始代碼的編寫吧:


簡單的佈局:activity_main.xml:


    

接著是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

中添加這個權限哦!

本節demo下載:AudioManager簡單使用demo下載

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *