电子加载远程URL并加载本地文件

时间:2018-03-20 20:48:52

标签: javascript electron

我有一个视频装置,用于举办大型视频(几个GB)的艺术展览和一个在线托管的网络应用程序。

由于我想在展览期间保存一些带宽,我想将视频打包成电子应用程序,在启动时加载网页并加载来自本地文件系统/打包电子应用程序的视频。

我已经实现了禁用webSecurity(没关系,我旁边没有人运行此应用程序)我已经在JS控制台中收到错误消息

GET file:///idle.mp4 net::ERR_FILE_NOT_FOUND

我找不到正确的路径/文件夹来引用本地文件,你有提示吗?我不能使用固定/绝对文件路径,因为onlineserver不知道本地文件路径..

我尝试将视频文件放入主文件夹和渲染器文件夹中,但它没有用完,只显示上面的错误信息。谢谢!

目前我在我的网络应用中引用了这样的视频:

<video id="id12">
  <source src="file:///ship.mp4" type="video/mp4"></source>
</video>

我的文件夹结构如下:Folder

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案,我只需要在我的电子应用程序中创建一个fileProtocol拦截器:

function createMainWindow() {

  protocol.interceptFileProtocol('file', function(req, callback) {
    var url = req.url.substr(7);
    callback({path: path.normalize(__dirname + url)})
  },function (error) {
    if (error)
      console.error('Failed to register protocol')
  })
...