5

我正在尝试使用此库 ( RTCMulticonnectionType Error ) 实现 WebRTC,并且在尝试在 Safari Tech Preview 11 中的视频 mediaElement 上设置“srcObject”时遇到了一个问题。

相关代码:

if (isSafari) {

    //I've tried the 4 ways below to set the srcObject but all cause a Type Error

      // mediaElement['srcObject'] = window.URL.createObjectURL(stream); throws type error
      // mediaElement['srcObject'] = stream; throws type error
      // mediaElement['src'] = window.URL.createObjectURL(stream);
      // mediaElement.srcObject = stream; // throws type error
}

当我打印mediaElement时,我得到:<video></video>

当我打印stream时,我得到一个MediaStream对象。

MediaStream {streamid: "722cfcc7-0687-4265-b266-e81b2abf8398", idInstance: "{\"audio\":{\"mandatory\":{},\"optional\":[{\"bandwidth\":…\":[{\"bandwidth\":4194304},{\"facingMode\":\"user\"}]}}", isVideo: 1, isAudio: false, type: "local", …}

错误

TypeError: Type error
[Error] No message (2)
TypeError: Type error — RTCMultiConnection.js:4089
Object audio: {mandatory: {}, optional: [{bandwidth: 1048576}]}
    video: {mandatory: {}, optional: [{bandwidth: 4194304}, {facingMode: "user"}]}

Object Prototype
    onMediaError (RTCMultiConnection.js:5215)
    onLocalMediaError (RTCMultiConnection.js:806)
    onLocalMediaError (RTCMultiConnection.js:4995)
    (anonymous function) (RTCMultiConnection.js:3365)
    promiseReactionJob

Type Error被困在这个then/catch

navigator.mediaDevices.getUserMedia(options.localMediaConstraints).then(function(stream) {
      stream.streamid = stream.streamid || stream.id || getRandomString();
      stream.idInstance = idInstance;
      streaming(stream);
  }).catch(function(error) {
      options.onLocalMediaError(error, options.localMediaConstraints             });
4

0 回答 0