我正在尝试从 React Native 连接 Janus。一切正常,除了远程视频显示为空白
我已经检查了网络客户端,它工作正常,这意味着发件人正在发送视频。
我还检查了视频轨道,远程流肯定有视频轨道。
我的远程提要功能如下
newRemoteFeed = (id, display) => {
let remoteFeed = null;
var ref = this;
janus.attach({
plugin: 'janus.plugin.videoroom',
opaqueId: "janusrocks",
success: pluginHandle => {
remoteFeed = pluginHandle;
let listen = {
request: 'join',
room: 1234,
ptype: 'subscriber',
feed: id,
};
remoteFeed.send({message: listen});
},
error: error => {
Alert.alert(' -- Error attaching plugin...', error);
},
onmessage: (msg, jsep) => {
let event = msg['videoroom'];
if (event != undefined && event != null) {
if (event === 'attached') {
// Subscriber created and attached
}
}
if (jsep !== undefined && jsep !== null) {
remoteFeed.createAnswer({
jsep: jsep,
media: {audioSend: false, videoSend: false , data:true},
success: jsep => {
var body = {request: 'start', room: 1234};
remoteFeed.send({message: body, jsep: jsep});
},
error: error => {
Alert.alert('WebRTC error:', error);
},
});
}
},
webrtcState: on => {},
onlocalstream: stream => {},
onremotestream: stream => {
ref.setState(s => ({...s, info: 'One peer join!'}));
// const remoteList = ref.state.remoteList;
// const remoteListPluginHandle = ref.state.remoteListPluginHandle;
// remoteList[id] = stream.toURL();
// remoteListPluginHandle[id] = remoteFeed;
//Alert.alert("Friend Joined");
ref.setState(s => ({
...s,
remoteKey: '234',
remoteStream: stream.toURL(),
}));
var videoTracks = stream.getVideoTracks();
if(!videoTracks || videoTracks.length === 0) { Alert.alert("No Remote Video"); } else { Alert.alert("Remote Video Exists")};
},
oncleanup: () => {
// if (remoteFeed.spinner !== undefined && remoteFeed.spinner !== null)
// remoteFeed.spinner.stop();
// remoteFeed.spinner = null;
// if (
// bitrateTimer[remoteFeed.rfindex] !== null &&
// bitrateTimer[remoteFeed.rfindex] !== null
// )
// clearInterval(bitrateTimer[remoteFeed.rfindex]);
// bitrateTimer[remoteFeed.rfindex] = null;
},
});
}
我正在使用 RTC vew 来显示远程流
<RTCView key={this.state.remotekey}
streamURL={this.state.remoteStream}
style={styles.remoteView} />
任何帮助将不胜感激