'dan sonra çalışmıyor. Şu anda bir .webm video dosyasını socket.io aracılığıyla istemciye aktarıyorum (şu anda Chrome'u istemci olarak kullanıyorum).SourceBuffer'a ekleyen MediaSource, ilk kez
SourceBuffer ilk Uint8Array
çalışıyor ekleme ama çalışmıyor başka olanları ekleme ve aşağıdaki hata atıyor: Uncaught DOMException: Failed to execute 'appendBuffer' on 'SourceBuffer': The HTMLMediaElement.error attribute is not null.
Benim geçerli kod:
'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);
}
});
});
Sunucu tarafında kod (snippet)
io.on('connection', function(socket) {
console.log("Client connected");
let readStream = fs.createReadStream("bunny.webm");
readStream.addListener('data', function(data) {
socket.emit('video', data);
});
});
Webkit denetimlerini de kaldırdım çünkü bu yalnızca Chromium tarayıcılarda çalışır.
Sunucu kodunuzu da gönderebilir misiniz? – cviejo
'u kurmayı ve test etmeyi kolaylaştıracağından, sunucu kodunun benim için bir istemci hatası gibi göründüğünden gereksiz olduğunu düşünmüştüm ama doğru bir şekilde yardımcı olabilirsiniz. – Cludch
Sonunda hata yok. Dosyanın kendisiyle ilgili bir sorun olabilir. Bir "bunny.webm" dosyası kullandığınızdan ve [bu gönderi] (http://stackoverflow.com/questions/27309027/stream-video-through-socket-to-html5-video-tag) ile benzer bir sorun bulunduğundan http://www.webmfiles.org/demo-files adresinden indirilen dosyalar ... dosyayı veya başka bir dosyayı yeniden biçimlendirmeyi zaten denediniz mi? – cviejo