我已经在我的安卓应用程序中成功地运行了WebRTC一段时间,使用了libjingle.so和PeerConnectionClient.java等,来自谷歌的代码库。但是,我现在遇到了一个问题,用户只以音频(即音频调用)启动连接,然后切换视频。我将现有的setVideoEnabled()扩展到PeerConnectionClient中,如下所示:
public void setVideoEnabled(final boolean enable) {
executor.execute(new Runnable() {
@Override
public void run() {
renderVideo = enable;
if (localVideoTrack != null) {
localVideoTrack.setEnabled(renderVideo);
} else {
if (renderVideo) {
//AC: create a video track
String cameraDeviceName = VideoCapturerAndroid.getDeviceName(0);
String frontCameraDeviceName =
VideoCapturerAndroid.getNameOfFrontFacingDevice();
if (numberOfCameras > 1 && frontCameraDeviceName != null) {
cameraDeviceName = frontCameraDeviceName;
}
Log.i(TAG, "Opening camera: " + cameraDeviceName);
videoCapturer = VideoCapturerAndroid.create(cameraDeviceName);
if (createVideoTrack(videoCapturer) != null) {
mediaStream.addTrack(localVideoTrack);
localVideoTrack.setEnabled(renderVideo);
peerConnection.addStream(mediaStream);
} else {
Log.d(TAG, "Local video track is still null");
}
} else {
Log.d(TAG, "Local video track is null");
}
}
if (remoteVideoTrack != null) {
remoteVideoTrack.setEnabled(renderVideo);
} else {
Log.d(TAG,"Remote video track is null");
}
}
});}
这允许我成功地看到设备的摄像机的本地嵌入,但它不会将视频发送到remove客户端。我以为peerConnection.addStream()调用可以做到这一点,但也许我遗漏了其他什么东西?
发布于 2015-10-03 04:10:52
为了避免在对等点之间建立外部通信机制,这将涉及到第二个对等方关于可以添加新流的答复,您可以始终从现有(但有时为空)视频流开始。现在,这只是在必要时(如果)用内容填充这个流的问题。
https://stackoverflow.com/questions/32915642
复制相似问题