मेरे पास दो वीडियो नाम v11.webm और v12.webm हैं।मीडिया स्रोत एपीआई का उपयोग करके मैं स्रोत वीडियो बफर में दो वीडियो फ़ाइलों को कैसे जोड़ूं?
मुझे क्या चाहिए यह है कि इन दोनों वीडियो को किसी भी अंतर के बिना निर्बाध रूप से चलाना चाहिए।
मैं स्रोत बफर को डेटा जोड़ने के मीडिया स्रोत एपीआई दृष्टिकोण का पालन कर रहा हूं।
मैं डेमो इस link
पर दिया मुझे लगता है कि उदाहरण के संशोधित और वीडियो बेडौल का हिस्सा हटा दिया है और यह भी बुद्धिमान स्रोत बफर फाइल करने के लिए डेटा संलग्न करने के लिए कोशिश की है बात कर रहा हूँ।
<script>
var video = document.querySelector('video');
window.MediaSource = window.MediaSource || window.WebKitMediaSource;
if (!!!window.MediaSource) {
alert('MediaSource API is not available');
}
var mediaSource = new MediaSource();
video.src = window.URL.createObjectURL(mediaSource);
mediaSource.addEventListener('webkitsourceopen', function(e) {
var sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vorbis,vp8"');
for(i=1;i<=2;i++)
{
(function(i){
GET('v1'+i+'.webm', function(uInt8Array) {
var file = new Blob([uInt8Array], {type: 'video/webm'});
var reader = new FileReader();
reader.onload = function(e) {
sourceBuffer.append(new Uint8Array(e.target.result));
};
reader.readAsArrayBuffer(file);
});
})(i);
}
}, false);
mediaSource.addEventListener('webkitsourceended', function(e) {
logger.log('mediaSource readyState: ' + this.readyState);
}, false);
function GET(url, callback) {
// alert(url);
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.send();
xhr.onload = function(e) {
if (xhr.status != 200) {
alert("Unexpected status code " + xhr.status + " for " + url);
return false;
}
callback(new Uint8Array(xhr.response));
};
}
</script>
अभी के रूप में वांछित कोड काम नहीं कर रहा:
मेरे कोड इस प्रकार है।
v11.webm और v12.webm फ़ाइल डेटा का एक असंगत मिश्रण है।
यह निर्बाध रूप से नहीं चल रहा है।
क्या आप कभी इसे समझने में सक्षम थे? मीडियासोर्स स्पेक का कहना है कि टाइमस्टैम्प ऑफसेट्स (https://dvcs.w3.org/hg/html-media/raw-file/6d127e69c9f8/media-source/media-source.html#source-buffer- का उपयोग करके ऐसी चीज संभव है। टाइमस्टैम्प-ऑफ़सेट), लेकिन मैं इस तरह के ऑफ़सेट को सेट करने के तरीके को बिल्कुल नहीं ढूंढ पाया। जवाब देने के लिए –