电子应用程序无法在生产中寻求缓冲

时间:2016-07-26 14:53:29

标签: html5-video electron

我正在使用Electron创建一个桌面应用程序,在与HTML相同的目录中播放本地视频。

在开发中使用应用程序时,我能够成功找到缓冲区(我改变视频的时间并搜索其他字节)

最初它从字节0获取视频数据:

Request URL:file:///path_to_electron/electron-boilerplate/build/HQ.mp4
Range:bytes=0-

当我改变在另一个请求中寻找新视频的时间时,如果它不在缓冲区中:

Request URL:file:///path_to_electron/electron-boilerplate/build/HQ.mp4
Range:bytes=89784320-

如果我在生产环境中运行它,我最初得到这个:

Request URL:file:///Applications/app_name/Contents/Resources/app.asar/HQ.mp4
Range:bytes=0-

但如果我尝试去缓冲区中没有的时间,它会因视频错误3而崩溃(MEDIA_ERR_DECODE - 解码时出错)

Request URL:file:///Applications/app_name/Contents/Resources/app.asar/HQ.mp4
Range:bytes=89784320-    
Error code:  3

我没有从运行它进行开发或生产中获得可能产生此错误的差异

1 个答案:

答案 0 :(得分:0)

当您运行生产脚本时,它会生成一个asar包,其中包含您的所有应用。

  

asar存档是一种简单的类似tar的格式,可将文件连接到一个文件中。 Electron可以从中读取任意文件而无需解压缩整个文件。

然而,这带来了一些限制,其中之一是asar中的档案是read-only,因此库可能正在尝试修改视频或其他文件,并在那里抛出错误。

Application Packaging (asar info)