HTML5视频链接在Chrome中不起作用
HTML5 Video link not working in Chrome
我有以下代码,可以通过公开访问的链接直接查看我的网络摄像头。
<!DOCTYPE html>
<html>
<head>
<title>webRTC Test</title>
</head>
<script type = "text/javascript">
function init()
{
if(navigator.webkitGetUserMedia)
{
navigator.webkitGetUserMedia({video:true}, onSuccess, onFail);
}
else
{
alert('webRTC not available');
}
}
function onSuccess(stream)
{
document.getElementById('camFeed').src = webkitURL.createObjectURL(stream);
var src = document.getElementById('camFeed').getAttribute('src');
document.getElementById('streamLink').href = src;
}
function onFail()
{
alert('could not connect stream');
}
</script>
<body onload = "init();" style="background-color:#ababab;">
<div style="width:352px; height:625px; margin:0 auto; background-color:#fff;">
<div>
<video id ="camFeed" width="320" height="240" autoplay>
</video>
</div>
<div>
<canvas id="photo" width="320" height="240">
</canvas>
</div>
<div style="margin: 0 auto; width:82px;">
<a id="streamLink">Visit Stream</a>
</div>
</div>
</div>
</body>
</html>
锚标签中生成的链接类似于:
blob:http%3A//sitename.com/7989e43a-334r-4319-b9c5-9dfu00b00cd0
在访问chrome时,他告诉告诉:"糟糕!这个链接似乎断了。"
感谢帮助!
文件API规范定义了URL.createObjectURL
。有几个部分让你在遵循规范的浏览器中无法完成你想要做的事情。
-
第11.5节规定:
Blob URI的来源必须是调用
URL.createObjectURL
的脚本的来源Blob URI只能在此原点内有效。换句话说,
createObjectURL
返回的URI只能在创建它们的网站的上下文中使用(有关HTML规范中"起源"的含义的更精确定义,请参阅RFC6454:Web起源概念)。您不能直接访问createObjectURL
返回的URL。 -
第11.6条规定:
此规范添加了一个额外的卸载文档清理步骤:用户代理必须从该文档中撤销使用
URL.createObjectURL
创建的任何Blob URI。这意味着,即使您可以直接访问URL,只要您离开名为
createObjectURL
的页面,创建的URL就不存在了。
您必须确保在HTTP或HTTP协议下使用/测试代码,因为URL.createObjectURL
在file://
协议上存在一些问题,并且在使用文件时无法为您的视频生成正确的BLOB://----!!!
您的代码无法单独在本地主机或您的机器上运行
你所需要的就是,在网上上传这个HTML文档(以防你想知道如何为自己获得托管,然后尝试签出Dropbox,你可以公开上传你的HTML页面,并通过公共链接免费访问,或者尝试其他产品,或者只需为自己获得主机)。正如你所看到的,这个例子http://www.html5rocks.com/en/tutorials/getusermedia/intro/在chrome中运行非常完美,尽管它使用的代码与您的代码相同。我希望这个解决方案能对你和其他人寻找这个bug的答案有所帮助。
此外,您还可以使用iframe访问视频元素以对其执行操作
- XMLHttpRequest在移动设备上的chrome上不起作用
- ng disabled在chrome中不起作用.按钮在角度上未禁用
- 鼠标输入在 YUI 的 chrome 中不起作用
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- HTML5视频链接在Chrome中不起作用
- jQuery克隆函数在chrome中不起作用
- jQuery place attr src在Chrome中不起作用
- chrome中的onmouseover(下拉选项标记)事件不起作用-php,javascript
- .ajax调用在chrome中不起作用
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 正在处理在chrome扩展中不起作用的js
- MediaSource API demo不起作用(Chrome)
- Chrome 中表格的 CSV 导出不起作用 - JavaScript/AngularJS
- $.getJSON 在 Chrome 和 Safari 中不起作用
- OnClick 事件在 Chrome 中不起作用
- getUserMedia 在 Chrome v50.0.2661.86 上不起作用
- dataTransfer.set拖放的数据在chrome中不起作用
- 简单的鼠标悬停在 Chrome 中不起作用
- window.close();在Chrome和Firefox中不起作用
- SoundCloud widget .play() 方法在选项卡在后台时不起作用 (Chrome)