在appRTC Android代码中切换音频和视频通话

时间:2016-02-04 17:46:42

标签: android apprtcdemo apprtc

我在我的Android应用程序中集成了appRTC代码用于调用目的,已完成。现在视频&音频通话工作正常。我的问题是,我需要实现以下目标。

1 即可。静音&在通话时取消静音。

2 即可。将视频呼叫切换到音频呼叫,反之亦然。

到目前为止,我经常搜索并且没有运气。如果你能在这些方面给我任何领导,那就太好了。提前谢谢。

4 个答案:

答案 0 :(得分:2)

<强> 1。静音&amp;通话时取消静音。

此类用于控制音频:https://chromium.googlesource.com/external/webrtc/+/b69ab79338bff71ea411b82f3dd59508617a11d5/talk/examples/android/src/org/appspot/apprtc/AppRTCAudioManager.java

您可能需要在此处明确添加静音功能。

<强> 2。拨打电话时,将视频呼叫切换为音频呼叫,反之亦然。

AppRtc演示中的PeerConnectionClient类取决于以下类:

https://chromium.googlesource.com/external/webrtc/+/b69ab79338bff71ea411b82f3dd59508617a11d5/talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java

要将视频通话切换为音频,您需要在VideoCapturerAndroid.java中显式调用stopCapture

答案 1 :(得分:0)

到目前为止,在音频和视频通话之间切换没有运气。但我找到了一种解决方案,可以在通话时静音麦克风音频。 setMicrophoneMute(boolean on)中有一个AppRTCAudioManager方法。我们可以使用相同的代码来静音麦克风。我刚刚创建了另一种方法。

public void setMicroPhoneMute(){
    boolean wasMuted = audioManager.isMicrophoneMute();
    if(wasMuted)
        audioManager.setMicrophoneMute(false);
    else
        audioManager.setMicrophoneMute(true);
}

只要在任何地方打电话给你。

答案 2 :(得分:0)

请参阅此链接以切换音频/视频 - enter image description here

虽然这是在javascript中,但它可以很容易地在android中实现。

当通过webrtc创建连接时,我们收到Media Stream,为了切换目的,我们可以删除audiotrack或录像带,然后再通过新配置将sdp从提交者发送到回答方。

mediaStream.removeAudioTrack(Audiotrack audioTrack) ; //for audio to video switching

mediaStream.removeVideoTrack(VideoTrack videoTrack) ; // video to audio switching

答案 3 :(得分:0)

使用此功能在静音 - &gt;之间切换unMute,视频 - &gt;音频

只需要MediaStream localMS

    //disable video in stream
    VideoTrack currentTrack = localMS.videoTracks.get(0);
    currentTrack.setEnabled(false);

    //disable audio in stream // mute
    AudioTrack curentAudioTrack = localMS.audioTracks.get(0);
    curentAudioTrack.setEnabled(false);

如果你想取消静音,只需使用像这样的

    AudioTrack curentAudioTrack = localMS.audioTracks.get(0);
    curentAudioTrack.setEnabled(true);

视频相同