【发布时间】:2012-12-04 04:49:19
【问题描述】:
正如标题所说,我正在寻找(我不知道它是否存在)一个命令行开关,当传递给启动 chrome 浏览器时,我可以读取元素的完整路径。
我做了一些阅读,看起来由于安全问题,在常规浏览器环境中是不可能的。
我为什么需要它?
我正在开发一个将在 CEF(铬嵌入式框架)中运行的 html/js 应用程序。所以知道文件的完整路径并不是真正的安全问题。我的应用程序有一个视频标签。我正在使用以下方法生成文件 url:
urls[urlIndex] = webkitURL.createObjectURL(file);
并将其提供给视频标签以像这样播放视频:
videoHandle.attr("src", urls[index -1]).get(0).play();
它在 chrome 浏览器中播放良好,但当我在 CEF 中播放时,它正在抛出一个
cefclient[1121] <Error>: clip: empty path.
我怀疑 CEF 无法理解 createObjectURL 生成的 url 格式。
blob:file%3A///1bd8d246-9bd4-464d-bb77-412ea877f952
所以,我正在尝试提供视频元素的绝对路径,因为这在 CEF 中运行良好。因此我需要文件的绝对路径。像这样的东西。
videoHandle.attr("src", "file:///C:/movies/test.mp4").get(0).play();
我希望这是有道理的。我很感激这方面的任何指示。
【问题讨论】:
-
如果我正确理解您的解决方案,您建议我将 base 设置为“file:///C:/movies/”并使用文件名“test.mp4”w/视频元素。因此基础将自动附加到视频文件中。那正确吗?问题是用户可以选择任何目录。一旦用户选择了一个目录,我希望能够获取整个路径“file:///C:/movies/test.mp4”。
-
我会试一试的。哦,我忘了提到我正在使用 --disable-web-security 和 --allow-file-access-from-files 启动 Chrome。 Chrome 工作正常(能够播放视频)w/webkitURL.createObjectURL(file);但我遇到问题的是 CEF(铬嵌入式框架),而且我正在启动 CEF 也有相同的论点。
-
如果我使用 /// 它将不起作用。问题不在于 Chrome 或 CEF。它带有一个外部库,我用它来解释我们的加密视频文件。这个外部库拦截从视频元素到较低层的调用。它试图从 createObjectURL 'blob:file%3A///1bd8d246-9bd4-464d-bb77-412ea877f952' 生成的 url 中理解,但在此之上打开流失败,因为只有较低层的 chromium 可以解释它.所以现在我正在寻找 Chromium 中进行这种解释的代码。一个熟悉的 w/ Chromium 代码,请帮忙。
-
我认为 SO Answer 将有助于从生成的 blob 中解析 URL。
标签: jquery html5-video blob chromium chromium-embedded