日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android音頻管理器

Android音頻管理器

來源:程序員人生   發布時間:2016-04-25 14:03:40 閱讀次數:5084次

Android基礎入門教程――10.3 AudioManager(音頻管理器)

標簽(空格分隔): Android基礎入門教程


本節引言:

在多媒體的第1節,我們用SoundPool寫了個Duang的示例,小豬點擊1個按鈕后,突然發出”Duang”的
1聲,而且當時的聲音很大,嚇死寶寶了,好在不是上班時間,上班時間偷偷寫博客給經理知道
會作死的~嗯,好的,說到這個聲音大小就得介紹下Android為我們提供的(音量大小控制)的API:
AudioManager(音頻管理器)了,該類位于Android.Media包下,提供了音量控制與鈴聲模式相干操作!
本節我們就來學下這個東東的用法,你可以寫1個Demo,1個簡單的靜音,每次看小電影之前,先
進Demo點下靜音,然后,說說而已哈~嗯,話不多說,開始本節內容!
官方API文檔:AudioManager


1.取得AudioManager對象實例

AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);


2.相干方法詳解

經常使用方法

  • adjustVolume(int direction, int flags):
    控制手機音量,調大或調小1個單位,根據第1個參數進行判斷
    AudioManager.ADJUST_LOWER,可調小1個單位;
    AudioManager.ADJUST_RAISE,可調大1個單位
  • adjustStreamVolume(int streamType, int direction, int flags):
    同上,不過可以選擇調理的聲音類型
    1)streamType參數,指定聲音類型,有下述幾種聲音類型:
    STREAM_ALARM:手機鬧鈴 STREAM_MUSIC:手機音樂
    STREAM_RING:電話鈴聲 STREAM_SYSTEAM:手機系統
    STREAM_DTMF:音調 STREAM_NOTIFICATION:系統提示
    STREAM_VOICE_CALL:語音電話
    2)第2個參數和上面那個1樣,調大或調小音量的
    3)可選的標志位,比如AudioManager.FLAG_SHOW_UI,顯示進度條,AudioManager.PLAY_SOUND:播放聲音
  • setStreamVolume(int streamType, int index, intflags):直接設置音量大小
  • getMode( ):返回當前的音頻模式
  • setMode( ):設置聲音模式
    有下述幾種模式:
    MODE_NORMAL(普通), MODE_RINGTONE(鈴聲),
    MODE_IN_CALL(打電話),MODE_IN_COMMUNICATION(通話)
  • getRingerMode( ):返回當前的鈴聲模式
  • setRingerMode(int streamType):設置鈴聲模式
    有下述幾種模式:
    RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(靜音)、RINGER_MODE_VIBRATE(震動)
  • getStreamVolume(int streamType):
    取得手機確當前音量,最大值為7,最小值為0,當設置為0的時候,會自動調劑為震動模式
  • getStreamMaxVolume(int streamType):取得手機某個聲音類型的最大音量值
  • setStreamMute(int streamType,boolean state):將手機某個聲音類型設置為靜音
  • setSpeakerphoneOn(boolean on):設置是不是打開擴音器
  • setMicrophoneMute(boolean on):設置是不是讓麥克風靜音
  • isMicrophoneMute():判斷麥克風是不是靜音或是不是打開
  • isMusicActive():判斷是不是有音樂處于活躍狀態
  • isWiredHeadsetOn():判斷是不是插入了耳機

其他方法

  • abandonAudioFocus(AudioManager.OnAudioFocusChangeListenerl):放棄音頻的焦點
  • adjustSuggestedStreamVolume(int,int suggestedStreamType intflags):
    調劑最相干的流的音量,或給定的回退流
  • getParameters(String keys):給音頻硬件設置1個varaible數量的參數值
  • getVibrateSetting(int vibrateType):返回是不是該用戶的振動設置為振動類型
  • isBluetoothA2dpOn():檢查是不是A2DP藍牙耳機音頻路由是打開或關閉
  • isBluetoothScoAvailableOffCall():顯示當前平臺是不是支持使用SCO的關閉調用用例
  • isBluetoothScoOn():檢查通訊是不是使用藍牙SCO
  • loadSoundEffects():加載聲音效果
  • playSoundEffect((int effectType, float volume):播放聲音效果
  • egisterMediaButtonEventReceiver(ComponentName eventReceiver):
    注冊1個組件MEDIA_BUTTON意圖的唯1接收機
  • requestAudioFocus(AudioManager.OnAudioFocusChangeListener l,int streamType,int durationHint)
    要求音頻的焦點
  • setBluetoothScoOn(boolean on):要求使用藍牙SCO耳機進行通訊
  • startBluetoothSco/stopBluetoothSco()():啟動/停止藍牙SCO音頻連接
  • unloadSoundEffects():卸載音效

3.使用示例

嘿嘿,屬性蠻多的,有些還觸及到藍牙這些東東,這里我們只講授最多見的1些方法!
遇到1些特殊的沒見過的,我們再來查文檔!
簡單的示例:使用Mediaplayer播放音樂,通過AudioManager調理音量大小與靜音!
對了,先在res下創建1個raw的文件夾,往里面丟1個MP3資源文件!

運行效果圖

代碼實現

布局代碼activity_main.xml

"http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btn_start; private Button btn_stop; private Button btn_higher; private Button btn_lower; private Button btn_quite; private MediaPlayer mePlayer; private AudioManager aManager; //定義1個標志用來標示是不是點擊了靜音按鈕 private int flag = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //取得系統的音頻對象 aManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE); //初始化mediaplayer對象,這里播放的是raw文件中的mp3資源 mePlayer = MediaPlayer.create(MainActivity.this, R.raw.countingstars); //設置循環播放: mePlayer.setLooping(true); bindViews(); } private void bindViews() { btn_start = (Button) findViewById(R.id.btn_start); btn_stop = (Button) findViewById(R.id.btn_stop); btn_higher = (Button) findViewById(R.id.btn_higher); btn_lower = (Button) findViewById(R.id.btn_lower); btn_quite = (Button) findViewById(R.id.btn_quite); btn_start.setOnClickListener(this); btn_stop.setOnClickListener(this); btn_higher.setOnClickListener(this); btn_lower.setOnClickListener(this); btn_quite.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_start: btn_stop.setEnabled(true); mePlayer.start(); btn_start.setEnabled(false); break; case R.id.btn_stop: btn_start.setEnabled(true); mePlayer.pause(); btn_stop.setEnabled(false); break; case R.id.btn_higher: // 指定調理音樂的音頻,增大音量,而且顯示音量圖形示意 aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI); break; case R.id.btn_lower: // 指定調理音樂的音頻,下降音量,只有聲音,不顯示圖形條 aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND); break; case R.id.btn_quite: // 指定調理音樂的音頻,根據isChecked肯定是不是需要靜音 flag *= -1; if (flag == -1) { aManager.setStreamMute(AudioManager.STREAM_MUSIC, true); //API 23過期- - // aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_MUTE, // AudioManager.FLAG_SHOW_UI); //23以后的版本用這個 btn_quite.setText("取消靜音"); } else { aManager.setStreamMute(AudioManager.STREAM_MUSIC, false);//API 23過期- - // aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_UNMUTE, // AudioManager.FLAG_SHOW_UI); //23以后的版本用這個 aManager.setMicrophoneMute(false); btn_quite.setText("靜音"); } break; } } }

代碼還是非常簡單的,另外設置靜音的方法setStreamMute()在API 23版本過期,
可使用另外一個方法adjustStreamVolume(int, int, int),然后第3個屬性設置:
ADJUST_MUTE or ADJUST_UNMUTE
對了,還有:
如果adjustStreamVolume()的第3個參數你設置了振動(Vibrator),
需要在AndroidManifest.xml中添加這個權限哦!
<uses-permission android:name=”android.permission.VIBRATE”/>


4.代碼示例下載

AudioManagerDemo.zip


本節小結:

好的,本節給大家演示了AudioManager用于調理音量的1個簡單用法,這個類筆者也不經常使用
到,以后如果有甚么新get的技能再加上吧~嘿嘿,靜音Demo寫好沒?要結合實際需求哈~
另外,本周博客可能不會更新得太頻繁,本周要把公司的WebSocket庫替換掉,有得頭痛了~
好的,就說這么多,謝謝~

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美日韩一区三区 | 日韩视频中文字幕 | 伊人欧美 | 91精品国产综合久久精品图片 | 日韩久久一区 | 久久久国产精品 | 日本一区二区三区免费观看 | 黄色在线免费观看 | 精品国产第一页 | 久色国产 | 国产精品美女久久 | 久久美女| 日韩一区二区三区电影 | 伊人在线 | 成人高清视频免费观看 | 国产精品久久久久久久三级 | 欧美一区二区三区在线 | 国产操片| 91精品久久久久久久久99绯色 | www.成人网 | 99在线免费观看 | 国产a一三三四区电影 | 欧美成人三区 | 亚洲 欧美 日韩 在线 | 香蕉久久精品 | 亚洲男人天堂2024 | 黄色一区二区三区 | 中文一区| 成人免费av | 成人性爱视频在线观看 | 日韩久 | 精品久久久网站 | 午夜激情视频在线 | 国产精品久久久久久久久 | 亚洲人成网亚洲欧洲无码 | 91精品国产综合久久香蕉最新版 | 玖玖视频 | 精品无人乱码一区二区三区 | 久久久久久久久综合 | 久久国产亚洲 | 日韩成人在线观看 |