【问题标题】:Google chrome - playing a file from local storage is not working谷歌浏览器 - 从本地存储播放文件不起作用
【发布时间】:2014-12-24 21:09:00
【问题描述】:

我需要在本地 Kiosk 中播放视频文件。其中有 Windows 8.1 64 位,谷歌金丝雀/铬最新版本。我对最新的谷歌浏览器/金丝雀版本有同样的问题,它没有从本地存储播放文件。如果我从云端玩,我会遇到带宽问题+ 自助服务终端无法访问互联网。

第 1 步:允许一切零限制

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --incognito --allow-file-access-from-files --disable-web-security 

第 2 步:

现在我打开一个远程 url https://stackoverflow.com/test.html,它正在尝试播放位于用户 PC 中的视频文件,C:\loop.webm

示例:test.html

<video id="mediaplayer" autoplay="autoplay" poster="/images/vlc.jpg" type="video/webm" loop="" src="file:///C:/loop.webm" style="display: inline;"></video>

结果:

The page at 'https://....mysite.com/test.html' was loaded over HTTPS, but displayed insecure content from 'file:///C:/loop.mp4': this content should also be loaded over HTTPS.

没有错误,但不读取文件,播放文件。

在这种情况下如何播放文件?

【问题讨论】:

  • 也许 chrome 没有像你一样对 c:\ 的权限,尝试一个你知道它可以访问的文件夹,比如 temp,或者 chrome 文件夹本身。
  • 也使用了临时文件夹,但同样,它一直说“https://...”处的页面是通过 HTTPS 加载的,但显示来自“file:///C”的不安全内容: /...':此内容也应通过 HTTPS 加载。
  • 这不是票价,因为我告诉 Chrome 允许这些本地访问,即使那样他也不允许我。例如:“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --incognito --allow-file-access-from-files --disable-web-security
  • 可能有一个 chrome 开关可以实现这一点。似乎有一对与安全有关:peter.sh/experiments/chromium-command-line-switches

标签: javascript windows html google-chrome html5-video


【解决方案1】:

错误告诉你出了什么问题! C:\ 驱动器没有 HTTPS 证书 - 它没有 - 但您使用的网站有一个。 Chrome 这样做是为了保护用户的安全。如果要从 C:\ 驱动器加载视频文件,则需要在非 https 网站上进行。

编辑: 这个插件似乎是一种解决方法: https://chrome.google.com/extensions/detail/jllpkdkcdjndhggodimiphkghogcpida

【讨论】:

  • 我同意。但这在逻辑上是错误的,应该被认为是BUG。因为您可以在命令行参数中看到我明确提到允许我访问,即使用户接受它。为什么谷歌仍然不允许这种类型的访问?在我的信息亭案例中,这对 Google 造成了致命的影响。对于这个问题,我现在需要更改我的整个应用程序,这根本不是票价。
  • 不管怎样,你为什么需要https? Chrome 是硬编码的,以避免这样的安全漏洞。您必须重新编译 chrome 才能将其删除。这很烦人,但它是一种硬编码到 chrome 中的安全功能,您必须解决它。
  • 我必须需要 HTTPS,因为我提供基于云的服务。人们购买云分区,我不能给他们我的源代码在本地运行。
  • 我如何从硬编码部分删除这个功能你知道吗,然后我将重新编译我自己的版本,拒绝所有那些不合逻辑的安全桥。
  • 我找到了一个似乎可以解决您的问题的插件。我会编辑这个问题,如果它有效,请接受它。谢谢! chrome.google.com/extensions/detail/…
【解决方案2】:

谷歌浏览器/金丝雀即使通过命令行也不支持它,如果它应用了。临时使用 Nginx 本地执行文件。

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 2020-08-28
    • 2015-08-30
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多