0

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

1 . 通话时静音和取消静音。

2 . 通话时将视频通话切换为音频通话,反之亦然。

我已经搜索了很多,到目前为止没有运气。如果你能在这些事情上给我任何线索,那就太好了。提前致谢。

4

4 回答 4

3

1. 通话时静音和取消静音。

此类用于控制音频: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

于 2016-03-14T22:57:43.630 回答
1

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

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

只需在任何你想要的地方调用它。

于 2016-05-11T17:34:16.370 回答
0

使用它在静音 -> 取消静音,视频 -> 音频之间切换

只需要 MediaStreamlocalMS

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

如果您想取消静音,请像这样使用 true

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

视频也一样

于 2017-12-23T05:22:57.483 回答
0

音频/视频切换请参考此链接 -链接

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

当通过 webrtc 创建连接时,我们会收到媒体流,出于切换目的,我们可以删除音轨或视频轨道,然后使用新配置再次将 sdp 从提供方发送到应答方。

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

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

于 2016-06-21T06:01:42.057 回答