2015-12-02 22 views
12

現在、私のクライアント(現在はChromeをクライアントとして使用しています)にsocket.io経由で.webmビデオファイルをストリーミングしようとしています。 SourceBufferに最初Uint8Arrayを追加はSourceBufferに追加しているMediaSourceが初めて動作しない

が正常に動作しますが、さらなるものを追加することはできませんし、次のエラーがスローされます。 Uncaught DOMException: Failed to execute 'appendBuffer' on 'SourceBuffer': The HTMLMediaElement.error attribute is not null.

私の現在のコード:

'use strict'; 

let socket = io.connect('http://localhost:1337'); 

let mediaSource = new MediaSource(); 
let video = document.getElementById("player"); 
let queue = []; 
let sourceBuffer; 

video.src = window.URL.createObjectURL(mediaSource); 

mediaSource.addEventListener('sourceopen', function() { 
    sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vorbis,vp8"'); 

    socket.on("video", function(data) { 
     let uIntArray = new Uint8Array(data); 

     if (!sourceBuffer.updating) { 
      sourceBuffer.appendBuffer(uIntArray); 
     } else { 
      queue.push(data); 
     } 
    }); 
}); 

サーバー側のコード(スニペット)

io.on('connection', function(socket) { 
      console.log("Client connected"); 

      let readStream = fs.createReadStream("bunny.webm"); 
      readStream.addListener('data', function(data) { 
       socket.emit('video', data); 
      }); 
     }); 

ウェブキットのチェックも削除されました。 Chromiumブラウザで実行します。

+0

サーバーコードも投稿できますか? – cviejo

+0

をセットアップしてテストするのが簡単になります。私はクライアントエラーのように見えるので、サーバーコードは不要だと思っていましたが、それは助けになるかもしれません。 – Cludch

+0

私のためにエラーはありません。ファイル自体に問題がある可能性があります。あなたは "bunny.webm"ファイルを使用しているので、[this post](http://stackoverflow.com/questions/27309027/stream-video-through-socket-to-html5-video-tag)にも同様の問題があります。 http://www.webmfiles.org/demo-filesからダウンロードしたファイル...既にファイルや別のファイルをフォーマットし直しましたか? – cviejo

答えて

2

私は、あなたがremove()関数 http://w3c.github.io/media-source/#widl-SourceBuffer-remove-void-double-start-unrestricted-double-end

はそれが助け場合、私に教えてください参照、バッファを解放する必要があると思います。

+0

最初のappendBufferの後にこのメソッドを呼び出そうとしましたが、 'mediaSource.duration'が' NaN'であるため 'InvalidAccessError'エラーが発生します - https://developer.mozilla.org/en-US/docs/Web/API私は削除を呼び出す必要があります場合はhttps://developer.mozilla.org/en-US/docs/Web/API/MediaSource/duration – Cludch

+0

削除しますか?私はそれをコンソール経由で呼びましたが、それでも新しいチャンクを追加できませんでした。 –

+0

:/ SourceBuffer /私はあなたがこの期間を自分で設定する必要がかもしれないと思う – Cludch

関連する問題