我习惯于使用 javascript 媒体承诺来检测自动播放何时失败,如下所述:https ://developers.google.com/web/updates/2017/09/autoplay-policy-changes 。但是如何检测 WaveSurfer.js 中的自动播放失败?
我已经尝试了错误事件,但在这种情况下它似乎没有做任何事情。更奇怪的是,不管它是否真的在播放,play 事件都会触发。
https://jsfiddle.net/mcrockett/k985zjh2/18/
var wavesurfer = WaveSurfer.create({
container: '#waveform',
waveColor: 'red',
progressColor: 'purple'
});
function play() {
wavesurfer.playPause();
}
wavesurfer.on('ready', play);
wavesurfer.on('error', function(){
console.log("does not get called when autoplay fails :(");
});
wavesurfer.on('play', function(){
console.log("called even when autoplay fails");
});
wavesurfer.load('https://ia902606.us.archive.org/35/items/shortpoetry_047_librivox/song_cjrg_teasdale_64kb.mp3');
有关示例,请参见我的 jsfiddle。如果通过 Chrome 查看,自动播放通常会失败。