如何防止Electron无法在后台加载视频?

x6492ojm  于 2023-08-01  发布在  Electron
关注(0)|答案(1)|浏览(158)

我有一个电子应用程序,可以在屏幕外的窗口中生成缩略图。这是工作,直到最近的更新。
我的代码实际上

try {
  const video = document.createElement('video');
  video.src = urlForVideo;
  await video.play();
} catch (e) {
  console.error(e);
}

字符串
我就明白了
播放()请求被中断,因为仅视频背景媒体被暂停以保存电力。
我的应用程序需要在后台生成视频的缩略图。当然,我可以恢复到旧版本的电子,但有没有一些方法来配置电子不产生这个错误?
我尝试将backgroundThottling: false作为webPreferences标志传递(如文档here所示),但没有帮助

bz4sfanl

bz4sfanl1#

this question搜索后,看起来这是一个自动播放方法,由于lack of user interaction而被chrome阻止。
你可以在electron中设置一个首选项来启用autoplay方法,但请确保你知道你在做什么,因为不建议禁用webSecurity属性。
尝试在初始化窗口时将webSecurity属性设置为false,类似于以下内容:

const mainWindow = new BrowserWindow({
  webPreferences: {
    webSecurity: false
  }
});

mainWindow.loadURL("http://autoplay-video-url-here.com");

字符串
如果这不起作用,还有一种替代方法,您可以将 command 传递给您的应用程序(确保在它准备好之后执行):

app.commandLine.appendSwitch("autoplay-policy", "no-user-gesture-required");

如果这不起作用,我的第二个猜测是这条消息:
播放()请求被中断,因为仅视频背景媒体被暂停以保存电力。
与您系统上的任何电池省电偏好有关。

附言

我不知道这是不是你帖子里的一个错字,但是你说你试过设置backgroundThrottling,但是看起来你忘记了“r”。如果这是一个真正的错字,请尝试使用正确的参数重新运行它。

相关问题