0

我正在尝试从 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} />  

任何帮助将不胜感激

4

0 回答 0