我正在使用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
我没有从运行它进行开发或生产中获得可能产生此错误的差异
答案 0 :(得分:0)
当您运行生产脚本时,它会生成一个asar
包,其中包含您的所有应用。
asar
存档是一种简单的类似tar的格式,可将文件连接到一个文件中。 Electron可以从中读取任意文件而无需解压缩整个文件。
然而,这带来了一些限制,其中之一是asar
中的档案是read-only
,因此库可能正在尝试修改视频或其他文件,并在那里抛出错误。