我在我的 Android 应用程序中集成了 appRTC 代码用于调用目的,这已完成。现在视频和音频通话工作正常。我的问题是,我需要实现以下目标。
1 . 通话时静音和取消静音。
2 . 通话时将视频通话切换为音频通话,反之亦然。
我已经搜索了很多,到目前为止没有运气。如果你能在这些事情上给我任何线索,那就太好了。提前致谢。
我在我的 Android 应用程序中集成了 appRTC 代码用于调用目的,这已完成。现在视频和音频通话工作正常。我的问题是,我需要实现以下目标。
1 . 通话时静音和取消静音。
2 . 通话时将视频通话切换为音频通话,反之亦然。
我已经搜索了很多,到目前为止没有运气。如果你能在这些事情上给我任何线索,那就太好了。提前致谢。
1. 通话时静音和取消静音。
您可能需要在此处显式添加静音功能。
2. 通话时将视频通话切换为音频通话,反之亦然。
AppRtc 演示中的 PeerConnectionClient 类依赖于以下类:
要将视频通话切换为音频,您需要在 VideoCapturerAndroid.java 中显式调用 stopCapture
到目前为止,在音频和视频通话之间切换还没有运气。但是我找到了一个解决方案,可以在通话时将麦克风音频静音。中有一个setMicrophoneMute(boolean on)
方法AppRTCAudioManager
。我们可以使用相同的代码将麦克风静音。我刚刚创建了另一种这样的方法。
public void setMicroPhoneMute(){
boolean wasMuted = audioManager.isMicrophoneMute();
if(wasMuted)
audioManager.setMicrophoneMute(false);
else
audioManager.setMicrophoneMute(true);
}
只需在任何你想要的地方调用它。
使用它在静音 -> 取消静音,视频 -> 音频之间切换
只需要 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);
视频也一样
音频/视频切换请参考此链接 -链接
虽然这是在 javascript 中,但它可以很容易地在 android 中实现。
当通过 webrtc 创建连接时,我们会收到媒体流,出于切换目的,我们可以删除音轨或视频轨道,然后使用新配置再次将 sdp 从提供方发送到应答方。
mediaStream.removeAudioTrack(Audiotrack audioTrack) ; //for audio to video switching
mediaStream.removeVideoTrack(VideoTrack videoTrack) ; // video to audio switching