Android獲取还栓、調(diào)節(jié)系統(tǒng)音量

我們知道碌廓,在平常調(diào)節(jié)音量的時候,是有一定的調(diào)節(jié)數(shù)值剩盒,
也就是谷婆,每按一次音量+/-,音量的增加/減小幅度辽聊,這個我們稱為:系統(tǒng)的音量步進(jìn)值纪挎。
而,音量還有一定的范圍跟匆,系統(tǒng)的是:0到Max异袄,Max不確定,這個稱為:系統(tǒng)的音量范圍玛臂。

在Android中握童,是有幾種類型的音量可以調(diào)節(jié):

STREAM_ALARM 警報
STREAM_MUSIC 音樂回放即媒體音量
STREAM_RING 鈴聲
STREAM_SYSTEM 系統(tǒng)
STREAM_VOICE_CALL 通話

Android中的所有音量都是通過:AudioManager 去管理的瓷炮,也是通過它去調(diào)節(jié):

AudioManager .png

調(diào)節(jié)音量的方式有兩種,一種是漸進(jìn)式,即像手動按音量鍵一樣,一步一步增加或減少:通過AudioManager的adjustStreamVolume方法;一種是直接自定義調(diào)節(jié)的幅度(步進(jìn)值)洋闽,直接調(diào)節(jié)音量大小。兩種方法任選其一就好财岔,這里我們主要說的是通過自定義的dialog進(jìn)行手動調(diào)節(jié)音量:其實方法很簡單吞杭,主要是我們需要將系統(tǒng)的音量拿到后然后對于seekBar進(jìn)行滑動監(jiān)聽

mNowVolume = mMaxVolume * binding.seekVolume.getProgress() / binding.seekVolume.getMax();
audioManager.setStreamVolume(MUSIC, mNowVolume, AudioManager.FLAG_PLAY_SOUND);
if (volumeAdjustListener != null) {
    volumeAdjustListener.onVolumeAdjust(mNowVolume);
}

然后我們需要放開回調(diào)讓用戶進(jìn)行操作就可以了

private final VolumeAdjustListener volumeAdjustListener;
public interface VolumeAdjustListener {
    void onVolumeAdjust(int volume);
}

最后是在需要的地方進(jìn)行調(diào)用就完成了我們的操作了

/**
 * 音量設(shè)置
 */
private fun showVolumeDialog() {
    val dialog = SettingVoiceDialog(mContext) { volume ->
        showToast("修改成功,當(dāng)前音量為:$volume")
    }
    dialog.show()
}
實現(xiàn)效果圖

最后push上部分的API說明

可以設(shè)置對哪種類型的音量去調(diào)控,通過:AudioMngHelper.setAudioType锋勺,通過注解的方式限制了用戶的設(shè)置類型蚀瘸,在類的開頭可以看到,默認(rèn)值是媒體類型庶橱。

可以對Flag進(jìn)行全局的設(shè)置贮勃,通過:AudioMngHelper.setFlag,設(shè)置顯示UI或者聽到調(diào)節(jié)音效或者啥都沒苏章。

get100CurrentVolume():以0-100為范圍寂嘉,獲取當(dāng)前的音量值

getSystemMaxVolume():獲取系統(tǒng)音量范圍的最大值

getSystemCurrentVolume():獲取系統(tǒng)音量范圍的當(dāng)前值

addVoiceSystem():以系統(tǒng)步進(jìn)值和范圍為基礎(chǔ),音量+

subVoiceSystem():同上枫绅,音量-

addVoice100():以0-100范圍和自定義的步進(jìn)值為基礎(chǔ)泉孩,音量+

subVoice100():同上,音量-

setVoiceStep100():設(shè)置DIY步進(jìn)值并淋,默認(rèn)是2寓搬。

代碼傳送門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市县耽,隨后出現(xiàn)的幾起案子句喷,更是在濱河造成了極大的恐慌,老刑警劉巖兔毙,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唾琼,死亡現(xiàn)場離奇詭異,居然都是意外死亡瞒御,警方通過查閱死者的電腦和手機(jī)父叙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肴裙,“玉大人趾唱,你說我怎么就攤上這事◎吲常” “怎么了甜癞?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宛乃。 經(jīng)常有香客問我悠咱,道長蒸辆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任析既,我火速辦了婚禮躬贡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眼坏。我一直安慰自己拂玻,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布宰译。 她就那樣靜靜地躺著檐蚜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沿侈。 梳的紋絲不亂的頭發(fā)上闯第,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機(jī)與錄音缀拭,去河邊找鬼咳短。 笑死,一個胖子當(dāng)著我的面吹牛智厌,可吹牛的內(nèi)容都是我干的诲泌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铣鹏,長吁一口氣:“原來是場噩夢啊……” “哼敷扫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诚卸,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤葵第,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后合溺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卒密,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年棠赛,在試婚紗的時候發(fā)現(xiàn)自己被綠了哮奇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡睛约,死狀恐怖鼎俘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辩涝,我是刑警寧澤贸伐,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站怔揩,受9級特大地震影響捉邢,放射性物質(zhì)發(fā)生泄漏脯丝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一伏伐、第九天 我趴在偏房一處隱蔽的房頂上張望宠进。 院中可真熱鬧,春花似錦藐翎、人聲如沸砰苍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茬缩,卻和暖如春赤惊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凰锡。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工未舟, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掂为。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓裕膀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親勇哗。 傳聞我的和親對象是個殘疾皇子昼扛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 在實際的開發(fā)當(dāng)中,我們總是會用到很多公用的方法欲诺,可能我們習(xí)慣性的給封裝成一個公用的代碼塊方法抄谐,但其實開發(fā)一個APP...
    Poison丶Carson閱讀 4,121評論 4 9
  • 在開發(fā)的動作當(dāng)中,有時候會遇到一些問題扰法,尤其是電商或者銀行類型的項目蛹含,會經(jīng)常性的要求用戶進(jìn)行一個簽名并進(jìn)行上傳,有...
    Poison丶Carson閱讀 1,138評論 0 8
  • 購物車功能在電商項目中可以說是一個必不可少的功能了塞颁,但是在項目當(dāng)中我們還是想將這個功能給盡可能的做的好看點浦箱、可觀賞...
    Poison丶Carson閱讀 273評論 0 1
  • 在項目中有時候會有需求說明列表能夠點擊查看更多和點擊收起的功能酷窥,這個時候很自然的就會想到RecyclerView,...
    Poison丶Carson閱讀 8,450評論 9 17
  • 目前的項目之中基本上都會存在版本更新的功能锤岸,分為強(qiáng)制更新和推薦更新竖幔,其實功能點都是一樣的,推薦更新只是增加一個按鈕...
    Poison丶Carson閱讀 3,438評論 7 35