使用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包,运行调节声音发现声音模式变成了媒体类型,并且可以静音