Java Android webRTC音频卷

Java Android webRTC音频卷,java,android,audio,webrtc,apprtcdemo,Java,Android,Audio,Webrtc,Apprtcdemo,我正在android上使用APPRTCdemo应用程序。我试着让它播放来自另一个同伴的声音,音量和安卓设置的一样大。因此,如果用户将设备静音,音频将听不到。 我尝试了几乎所有的Android API调用,但似乎没有任何东西对音量有任何影响。 以下是我尝试过的事情: AudioManager AudioManager=(AudioManager)\u context.getSystemService(context.AUDIO\u SERVICE); int volume=audioManager

我正在android上使用APPRTCdemo应用程序。我试着让它播放来自另一个同伴的声音,音量和安卓设置的一样大。因此,如果用户将设备静音,音频将听不到。 我尝试了几乎所有的Android API调用,但似乎没有任何东西对音量有任何影响。 以下是我尝试过的事情: AudioManager AudioManager=(AudioManager)\u context.getSystemService(context.AUDIO\u SERVICE); int volume=audioManager.getStreamVolume(audioManager.STREAM\u VOICE\u CALL)


如果您只想静音音频,可以使用smth,如以下结构:

inputMediaStream.audioTracks.getFirst().setEnabled(false);
在webrtc的源代码中,您可以找到src/webrtc/modules/audio\u device/android/java/src/org/webrtc/voiceengine/webrtcadiotrack.java,它使用

audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, volume, 0);

更改音量的代码(我认为它应该可以正常工作)。所以你的问题可能在其他地方。

我也面临同样的问题。我没有找到任何关于它的文档,但我发现您不能将
AudioManager.STREAM\u VOICE\u CALL
流静音。即使将音量设置为0,您仍然可以听到它

我不知道这是安卓系统的一部分还是制造商所做的修改,但我测试了几款具有相同行为的手机和平板电脑

这是很容易测试的,如果你在通话中尝试静音,你可以按音量下降键,但它不允许你完全静音


我猜这一切背后的想法是防止用户认为通话不能正常工作,而唯一的问题是音频被静音

如果要使流静音,可以执行以下操作:

RemoteStream.audioTracks.get(0).setEnabled(false); //in case you have only one audio track 

如果流中有多个音频曲目,可以将其置于循环中。这是经过测试的代码,静音/取消静音的效果非常好。

谢谢Alexey的回答。正如我在问题中提到的,我确实尝试过,但没有成功。
RemoteStream.audioTracks.get(0).setEnabled(false); //in case you have only one audio track