我使用libjingle:11139 @ aar库在Android平台上构建聊天应用程序。
许多stackoverflow线程解释了从RTCPeerConnection动态添加/删除媒体流的问题,但所有这些线程似乎都与JavaScript有关。我找不到任何详细解释Java / android应用程序中执行的使用/顺序的线程。
我已经在许多地方读过,在添加媒体流之后,必须向对等方提出关于添加流的新sdp。但是当创建新的sdp offer时,当前的对等连接是LOST。我在启动sdp商品的对等体中获得了onIceConnectionChange(CLOSED)(在添加媒体流之后)。 这是预期的行为吗?
另一个观察是,在向对等连接添加媒体流之后,在刚刚添加了流的对等体中接收到RenogotiationNeeded()通知。在此通知中,如果发送了createOffer(),则peerConnection将丢失。
非常感谢任何帮助。
答案 0 :(得分:0)
最后,当我回到WebRTC时,我找到了解决方案,在这里您可以禁用仅对等方的流媒体播放本地视频: 在 PeerConnectionClient 类中(我在Java-Android项目中讲),在下面编写一个函数,并在调用视频时调用它:
//Hieu: disabled receive peer video for aircraft streaming only
public void setMyVideoEnabled(final boolean enable) {
executor.execute(() -> {
renderVideo = enable;
if (remoteVideoTrack != null) {
remoteVideoTrack.setEnabled(renderVideo);
}
});
}
我还没有尝试过音频,但是我想我们可以和这个功能一样来做。 例如,我以WebRTC代码示例在按钮开关摄像机上调用该功能: CallActivity.java
@Override
public void onCameraSwitch() {
if (peerConnectionClient != null) {
//peerConnectionClient.switchCamera();
peerConnectionClient.setMyVideoEnabled(false);
}
}
Google示例的链接: https://webrtc.org/native-code/android/ 路径: src / examples / androidapp 玩得开心:)