9

AndroidでAPPRTCdemoアプリを使用しています。Androidの設定で音量が設定されているのと同じくらい大きな音で、他のピアからの音を再生させようとしています。そのため、ユーザーがデバイスをミュートした場合、音声は聞こえません。ほとんどすべての Android API 呼び出しを試しましたが、音量に影響を与えるものは何もないようです。これらは私が試したことです: AudioManager audioManager = (AudioManager)_context.getSystemService(Context.AUDIO_SERVICE); int volume = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);

    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);
4

3 に答える 3

2

ストリームをミュートする場合は、次の操作を実行できます。

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

ストリームに複数のオーディオ トラックがある場合は、ループに入れることができます。これはテスト済みのコードであり、ミュート/ミュート解除は問題なく機能しています。

于 2016-09-19T19:10:47.133 に答える
0

オーディオをミュートするだけの場合は、次の構造のように smth を使用できます。

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

webrtc のソース コードでは、使用する src/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java を見つけることができます

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

音量を変更するコード (そして、問題なく動作するはずです)。したがって、あなたの問題は他の場所にある可能性があります。

于 2015-07-28T10:21:57.683 に答える