我对媒体流和媒体源 api 的经验有限,您认为从 getusermedia 获取数据然后将该数据附加到媒体源的最佳方法是什么。现在我正在使用 MediaRecorder 记录数据,然后将其附加到新的 mediasource 对象上。但它只是返回一个空白视频。这是我目前正在做的事情。
function createElem (tagName) {
var elem = document.createElement(tagName)
elem.controls = true
elem.autoplay = true
elem.play()
document.body.appendChild(elem)
return elem
}
navigator.getUserMedia({ video: true, audio: false }, function (stream) {
var recorder = new MediaRecorder(stream)
var wrapper = new MediaSource()
var elem = createElem('video')
elem.src = window.URL.createObjectURL(wrapper)
wrapper.addEventListener('sourceopen', sourceOpen)
function sourceOpen () {
var source = wrapper.addSourceBuffer('video/webm;codecs=vp9')
recorder.ondataavailable = function (e) {
source.appendBuffer(new Uint8Array(e.data))
}
}
recorder.start(1000)
}, function () {})
我知道你可以使用video.src = window.URL.createObjectURL(stream)
,但我想处理原始数据。是否可以这样做。这是一个小提琴,所以你可以玩弄它。