我正在尝试在iPad上运行webRTC
应用程序(iOS7)。我的设备显示本地视频,一个尝试显示远程视频(添加了流),但远程视频屏幕保持黑色。
在试图弄清楚为什么我的远程视频屏幕是黑色时,我发现了callback
:
- (void)peerConnectionOnRenegotiationNeeded:(RTCPeerConnection *)peerConnection_ {
NSLog(@"peerConnectionOnRenegotiationNeeded:(RTCPeerConnection *)%@",peerConnection_);
}
在appRTC
示例中,它实现如下:
- (void)peerConnectionOnRenegotiationNeeded:(RTCPeerConnection*)peerConnection {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"PCO onRenegotiationNeeded - ignoring because AppRTC has a "
"predefined negotiation strategy");
});
}
调用此方法时应该怎么做?我问这个因为我认为我的一切都和示例差不多,只是信号不同,但它仍然不起作用。我想我应该在这个回调激发时做点什么,因为我没有像示例那样的“预定义协商策略”。
我的环境:
答案 0 :(得分:4)
原来我只需要重新创建sdp并发送它,我现在正在使用音频。
答案 1 :(得分:1)
虽然帖子相当陈旧,但黑屏的原因可能与Peer重新协商无关。
就个人而言,我发现我的设备上没有显示远程源(仅限音频),因为我没有强烈引用RTCVideoTrack或RTCMediaStream对象,这意味着每当我尝试时视频轨道都被丢弃利用它。
@property (nonatomic, strong) RTCMediaStream *remoteStream;
@property (nonatomic, strong) RTCVideoTrack *remoteVideoTrack;
通过在子类化的RTCPeerConnection对象中使用这些属性,并在建立WebRTC连接时通过委托调用将对象发送到我的视图控制器,我可以轻松地引用视频轨道并为视频和放大器设置渲染器;音频数据。