1. 程式人生 > 實用技巧 >android webrtc 無法靜音問題解決辦法

android webrtc 無法靜音問題解決辦法

使用webrtc Android/ios發現無法靜音,這是因為webrtc本意是要做視訊通話,所以音訊的流型別都預設設定為了STREAM_VOICE_CALL(即通話型別)
解決辦法:
將流型別改為Music即可,具體如下

在原始碼找到WebRtcAudioTrack類,找到initPlayout方法(此方法是真正處理音訊流的)
在這裡插入圖片描述
方法內部找到 createAudioTrackOnLollipopOrHigher方法的呼叫
在這裡插入圖片描述
檢視方法內部

在這裡插入圖片描述
關鍵點就在這裡,AudioAttributes的兩個屬性值Usage和ContentType
ContentType需要設定為CONTENT_TYPE_MUSIC型別


再看DEFAULT_USAGE的定義
在這裡插入圖片描述
在getDefaultUsageAttribute方法中返回Useage的型別,返回USAGE_MEDIA型別即可
重新編譯生成jar包,執行調節聲音發現聲音模式變成了媒體型別,並且可以靜音