尝试将 MediaSource 对象附加为 HTML5 视频标签的源时出现“不允许加载本地资源”错误

Posted

技术标签:

【中文标题】尝试将 MediaSource 对象附加为 HTML5 视频标签的源时出现“不允许加载本地资源”错误【英文标题】:Getting "Not allowed to load local resource" error while trying to attach a MediaSource object as the source of a HTML5 video tag 【发布时间】:2013-07-15 00:19:56 【问题描述】:

我正在尝试让 this 示例工作。当我单击链接时,它工作正常。但是当我尝试在本地机器上下载 html 文件并尝试相同时,它会抛出此错误。

不允许加载本地资源:blob:null/6771f68d-c4b8-49a1-8352-f2c277ddfbd4

似乎导致问题的代码行是这样的,

video.src = window.URL.createObjectURL(mediaSource);

这行代码所做的基本上是尝试将视频标签媒体元素的来源设置为 MediaSource 对象。我尝试了各种排列,但运气不佳。

我使用的是 Chrome 版本 28.0.1500.72 m,这是最新的稳定版本。

我将不胜感激。

【问题讨论】:

从http运行它:不是文件:... 成功了!我只是将文件移植到 http 服务器上,它工作正常。看起来这是一些奇怪的浏览器问题。 @dandavis 谢谢! @dandavis 你应该把它作为答案,我会赞成,正如你所说的那样。 run it from http: not file 表示:从http服务器获取页面,而不是在本地打开html文件。浏览器(合理地)对本地文件访问有限制,这就是为什么直接从您的文件夹打开页面时,您会收到权限错误。 【参考方案1】:

正如@dandavis 所说,“从 http:not file 运行它”。

为了组织起见,我将其发布为答案。

初学者: 从 http 运行您的项目意味着拥有一个 http 服务器(例如 apache 或简单的节点 http-server)并通过 http://localhost 运行您的项目。

【讨论】:

我该怎么做?在我的示例中,我正在录制媒体流并尝试将其设置为同一实例中的视频标签。 @VictorFerreira 我知道我来晚了,但是从 http 运行意味着拥有一个 http 服务器(例如 apache 或简单的节点 http-server)并通过 http运行您的项目>://本地主机。这就是“从 http 不是文件运行”的意思。您的问题是您直接打开文件 html 文件,而不是通过 http (:【参考方案2】:

使用 npm 命令全局安装 http-server(前提是您事先在系统中安装了 Node.js)。在 CMD 中导航到您的文件夹并键入 http-server。您的应用应该在 localhost:8080 中运行。

【讨论】:

以上是关于尝试将 MediaSource 对象附加为 HTML5 视频标签的源时出现“不允许加载本地资源”错误的主要内容,如果未能解决你的问题,请参考以下文章

第一次后附加到 SourceBuffer 的 MediaSource 不起作用

MediaSource API:视频无法播放

在使用 Excel VBA 发送的电子邮件中内联附加图像

将 FFMPEG 编码为 MPEG-DASH - 或带有关键帧集群的 WebM - 用于 MediaSource API

尝试使用 COM-interop 从 C# 库中附加 vb6 中的对象时,获取“无法将 'Field' 转换为 'Field' 类型(同一类)”

从 Windows.Media.Core.MediaSource 访问原始音频/视频帧