android webrtc 無法靜音問題解決辦法
阿新 • • 發佈:2020-10-13
使用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包,執行調節聲音發現聲音模式變成了媒體型別,並且可以靜音