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