我想使用mp3 and mp4
,html5
和JavaScript
在Pages中播放jQuery
个文件。
如果文件在播放文件的项目中有效,但如果文件在我的计算机上的另一个文件夹中(E,D或下载...),则它们不会运行。
的错误:
错误:searchms.aspx:1491未捕获(在promise中)DOMException:该元素没有受支持的源。
(play.click(function (e) { e.preventDefault(); song.play(); // this error
答案 0 :(得分:0)
自Chrome 50起,对play()
(或audio
)元素的video
调用会返回Promise
个实例(更多详细信息可在this reference中找到)。您应该为成功播放添加检测,并且Promise
实例已完成,如下例所示:
<强> HTML 强>
<audio id="song" src="../path/to/audio/file.mp3" />
<button id="play">Play</button>
<强> JS 强>
var play = $('#play'); // example
play.click(function (e) {
e.preventDefault();
var playback = document.querySelector('#song').play();
if (playback !== undefined) {
playback.then(function() {
// do something
}).catch(function(error) {
// do something else
});
}
});
另一个例子可以在HTMLMediaElement.play() Returns a Promise Sample中找到。
如果它变为CORS问题,请尝试将crossorigin
属性设置为匿名属性,然后确保从服务器返回的响应标头包含Access-Control-Allow-Origin: *
:
var song = document.getElementById('song');
song.setAttribute('crossorigin', 'anonymous');
// or this:
song.crossOrigin = 'anonymous';
相关问题:
DOMException: Failed to load because no supported source was found