我收到DOMException:无法加载,因为在video.play()中找不到支持的源 ; 线.我只是在添加了video.setAttribute('crossorigin','anonymous')之后才遇到这个问题; 我正在开发移动应用程序,所以对于交叉起源我需要添加这一行.更新chrome 50版本后,我在此之前遇到此问题,它可以正常工作.
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<script>
var video = document.createElement( 'video' );
video.id = 'video';
video.type = ' video/mp4; codecs="theora, vorbis" ';
video.src = "http://abcde.com/img/videos/what_is_design_thinking.mp4";
video.volume = .1;
video.setAttribute('crossorigin', 'anonymous');
video.load(); // must call after setting/changing source
$('body').html(video);
video.play();
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
$('body').append(canvas);
video.addEventListener('play', function() {
var $this = this; //cache
(function loop() {
if (!$this.paused && !$this.ended) {
ctx.drawImage($this, 0, 0);
setTimeout(loop, 1000 …Run Code Online (Sandbox Code Playgroud) 我试图让浏览器显示警报,如果音频元素src属性指向不存在的文件,但是如果我附加"错误"事件,我不会得到任何响应.
这是我的问题和我尝试过的问题http://jsfiddle.net/Xx2PW/7/
HTML:
<p>Non existent audio files - should return an error
<audio preload="auto">
<source src="http://example.com/non-existant.wav" />
<source src="http://example.com/non-existant.mp3" />
<source src="http://example.com/non-existant.ogg" />
</audio>
</p>
<p>Existing audio file - should just play
<audio preload="auto">
<source src="http://jplayer.org/audio/m4a/Miaow-07-Bubble.m4a" />
</audio>
</p>
Run Code Online (Sandbox Code Playgroud)
和JS:
playerMarkup = "<a class=\"player\">Play</a>";
audioTags = $("audio");
audioTags.before(playerMarkup); //insert markup before each audio tag
$(".player").on("click", function () {
currentAudio = $(this).next()[0];
//I've tried catching the error like this - no effect
alert("Trying to play file.");
try {
currentAudio.play();
} …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我们注意到我们的视频使用MediaElement.js Version 2.11.3和退出流式传输Chrome Version 50.0.2661.94 (64-bit)
视频仍然在Firefox和Safari中播放没有问题.
我们在Chrome开发者工具中收到的错误是:
Uncaught (in promise) DOMException: The element has no supported sources.
呈现页面上的标记如下所示:
<video height="150" poster="https://xxxxxxxxxx.cloudfront.net/123423_1_thumb.jpg" preload="auto" width="200" src="" hidden-source="https://xxxxxxx.cloudfront.net/123423_1_wm.webm">
<object data="flashmediaelement.swf" height="150" type="application/x-shockwave-flash" width="200">
<param name="movie" value="flashmediaelement.swf">
<param name="flashvars" value="controls=true&file=http://s38zby1czkz3d7.cloudfront.net/123423_1_wm.mp4">
</object>
</video>
Run Code Online (Sandbox Code Playgroud)
以下是一些错误图片,使其更加清晰:
以下是控制台中的错误消息: