我正在将部分块音频缓冲区数据传递到音频标签,但是我无法播放声音。我也为Web音频API尝试过同样的方法,但是它不起作用。请给我一些建议,如何使用块数据播放音频。
var createAudioElement = function () {
audioElement = document.querySelector('video');
if (window.MediaSource) {
mediaSource = new MediaSource();
audioElement.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
console.log("The Media Source Extensions API is not supported.")
}
};
function sourceOpen(e) {
var mime = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
console.log(this.readyState);
var mediaSource = this;
if (mediaSource.readyState === 'open') {
var sourceBuffer = mediaSource.addSourceBuffer(mime);
sourceBuffer.addEventListener('updateend', function (e) {
audioElement.play();
if (!sourceBuffer.updating && mediaSource.readyState === 'open') {
mediaSource.endOfStream();
}
});
sourceBuffer.appendBuffer(data);
}
};
data
将位于大块中,因此请将此大块附加到源缓冲区中,但不起作用。