android 音量控制setVolumeControlStream

來源:互聯網
上載者:User

android 音量控制setVolumeControlStream

當開發多媒體應用或者遊戲應用的時候,需要使用音量修飾鍵來設定程式的音量大小。在Android系統中有多中音頻流,通過Activity中的函數 setVolumeControlStream(int streamType)可以設定該Activity中音量修飾鍵控制的音頻流,一般在onCreate函數中設定。Android中有如下幾種音頻流(streamType是需要調整音量的類型):

AudioManager.STREAM_MUSIC /音樂回放即媒體音量/

AudioManager.STREAM_RING /鈴聲/

AudioManager.STREAM_ALARM /警報/

AudioManager.STREAM_NOTIFICATION /視窗頂部狀態列通知聲/

AudioManager.STREAM_SYSTEM /系統/

AudioManager.STREAM_VOICECALL /通話 /

AudioManager.STREAM_DTMF /複頻式訊號,不是很明白什麼東西 /

AudioManager可以修改系統Android系統的音量,下面介紹幾個AudioManager的幾個音量調整方面的方法.首先是得到AudioManager執行個體:

Java代碼

AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);

調整音量方法有兩種,一種是漸進式,即像手動按音量鍵一樣,一步一步增加或減少,另一種是直接設定音量值.1、漸進式

Java代碼

publicvoidadjustStreamVolume (intstreamType, intdirection, intflags)

 

am.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);

解釋一下三個參數

Java代碼

第一個streamType是需要調整音量的類型,這裡設的是媒體音量,可以是:

STREAM_ALARM 警報

STREAM_MUSIC 音樂回放即媒體音量

STREAM_NOTIFICATION 視窗頂部狀態列Notification,

STREAM_RING 鈴聲

STREAM_SYSTEM 系統

STREAM_VOICE_CALL 通話

STREAM_DTMF 複頻式訊號,不是很明白什麼東西

 

第二個direction,是調整的方向,增加或減少,可以是:

ADJUST_LOWER 降低音量

ADJUST_RAISE 升高音量

ADJUST_SAME 保持不變,這個主要用於向使用者展示當前的音量

 

第三個flags是一些附加參數,只介紹兩個常用的

FLAG_PLAY_SOUND 調整音量時播放聲音

FLAG_SHOW_UI 調整時顯示音量條,就是按音量鍵出現的那個

0表示什麼也沒有

2、直接設定音量值的方法:

Java代碼

publicvoidsetStreamVolume (intstreamType, intindex, intflags)

 

am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND);

am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//得到耳機模式的最大值

am.getStreamVolume(AudioManager.STREAM_VOICE_CALL);//得到耳機模式的當前值

第一個和第三個參數與上面的相同第二個參數是一個音量的int值,getStreamMaxVolume(int streamType)得到的是該類型音量的最大值,可以根據這個值計算你需要的音量,我這裡直接調到最大.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.