有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android webRTC音频卷

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

    volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    volume =audioManager.getStreamVolume(AudioManager.STREAM_RING);
    volume =audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
    volume =audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION);
    volume =audioManager.getStreamVolume(AudioManager.STREAM_SYSTEM);

    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
    audioManager.setStreamVolume(AudioManager.MODE_IN_COMMUNICATION, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
    audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 0,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
    audioManager.setStreamMute(AudioManager.MODE_IN_COMMUNICATION, true);
    audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
    audioManager.setStreamMute(AudioManager.STREAM_RING, true);
    audioManager.setStreamMute(AudioManager.STREAM_MUSIC, true);
    audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);

共 (3) 个答案

  1. # 1 楼答案

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

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

    如果流中有多个音频曲目,可以循环播放。这是经过测试的代码,静音/取消静音工作绝对正常

  2. # 2 楼答案

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

    inputMediaStream.audioTracks.getFirst().setEnabled(false);
    

    在webrtc的源代码中,您可以找到src/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/webrtcadiotrack。使用

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

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

  3. # 3 楼答案

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

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

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

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