2016年6月19日
現(xiàn)在直播越來(lái)越火,然而好的直播框架代碼是很重要的,webrtc是谷歌開源的一個(gè)直播框架,集成簡(jiǎn)單功能較全,是一個(gè)較好的選擇。
然而在直播開發(fā)過程中發(fā)現(xiàn)一個(gè)問題,就是webrtc直播的聲音無(wú)法靜音。在調(diào)節(jié)音量的的時(shí)候就能注意到,音量調(diào)節(jié)的圖標(biāo)并不是音樂媒體,而是通話的音頻標(biāo)志,通過看源碼也發(fā)現(xiàn),webrtc框架選用的就是通話的音頻通道STREAM_VOICE_CALL;而因?yàn)橥ㄔ捯纛l通道的特殊性,是不允許將通話音頻置為靜音的(就是說音量值為0的時(shí)候仍然有聲音輸出),這也符合一般的使用思維(通話的時(shí)候靜音意義不大)。
那么這時(shí)候該怎么解決這個(gè)問題呢?用戶在看直播的時(shí)候希望靜音這個(gè)需求是合理的,我選用的解決策略是:
1、設(shè)置音量調(diào)節(jié)監(jiān)聽,監(jiān)聽通話音量調(diào)節(jié)動(dòng)作獲取當(dāng)前音量;
2、檢測(cè)到一次或多次調(diào)音至0則直接暫停webrtc框架中的音頻資源,調(diào)至0以上時(shí)再開啟音頻資源。
關(guān)鍵代碼(其中mRoom和currentRemoteStream分別是webrtc框架中自帶的ConferenceClient和RemoteStream類的實(shí)例化對(duì)象):
[java] view plain copy新聞熱點(diǎn)
疑難解答
圖片精選