使用WebAudio接口播放直播的正确方式是什么?
我正在尝试下面的代码,但是我看到的是MP3正在下载,但没有播放;可能MediaElementSource需要一个文件,而不是连续的流。
window.AudioContext = window.AudioContext||window.webkitAudioContext;
context = new AudioContext();
var audio = new Audio();
var source = context.createMediaElementSource(audio);
source.connect(context.destination);
audio.src = '<live mp3 stream>';
audio.play();
发布于 2014-03-07 23:10:08
试一试
audio.addEventListener('canplaythrough', function() {
audio.play();
}, false);
发布于 2019-10-28 19:06:39
您可能会错过启用CORS的托管直播流的audio.crossOrigin = "anonymous"
。
这也是我的整个工作解决方案,MP3:
window.AudioContext = window.AudioContext || window.webkitAudioContext;
const context = new AudioContext();
const audio = new Audio();
audio.crossOrigin = 'anonymous'; // Useful to play hosted live stream with CORS enabled
const sourceAudio = context.createMediaElementSource(audio);
sourceAudio.connect(context.destination);
const playHandler = () => {
audio.play();
audio.removeEventListener('canplaythrough', playHandler);
};
const errorHandler = e => {
console.error('Error', e);
audio.removeEventListener('error', errorHandler);
};
audio.addEventListener('canplaythrough', playHandler, false);
audio.addEventListener('error', errorHandler);
audio.src = '<live mp3 stream>';
https://stackoverflow.com/questions/22246050
复制相似问题