#typescript #electron
#typescript #electron
Вопрос:
У меня есть
<video id="video_player">
<source id="video_player_source"/>
</video>
в моем HTML-файле и
const videoPlayer = document.getElementById("video_player") as HTMLVideoElement;
const videoPlayerSource = document.getElementById("video_player_source") as HTMLElement;
videoPlayer.setAttribute("style", `top: 0; left: 0; width: 100%; `);
videoPlayerSource.setAttribute("src", "https://www.html5rocks.com/en/tutorials/track/basics/treeOfLife/video/developerStories-en.webm");
videoPlayer.play();
в моем процессе рендеринга (видео является демонстрационным видео).
Видео действительно загрузилось (один кадр видео отображается на экране), но оно не воспроизводится при моем вызове play()
.
Как мне это исправить? Спасибо.
Ответ №1:
MediaElement.play()
возвращает обещание начиная с версии:
Firefox: 53
«Chrome для рабочего стола», «Chrome для Android», «Android WebView»: 50
‘Opera’, ‘Opera для Android’: 37
iOS Safari: iOS 10
Desktop Safari: июнь 2017, так что, возможно, версия 10.1.1
Итак, чтобы решить эту проблему, вот что вы можете сделать
HTML
<video id="video_player">
<source id="video_player_source"/>
</video>
JS
const videoPlayer = document.getElementById("video_player");
const videoPlayerSource = document.getElementById("video_player_source");
videoPlayer.setAttribute("style", `top: 0; left: 0; width: 100%; `);
videoPlayerSource.setAttribute("src","https://www.html5rocks.com/en/tutorials/track/basics/treeOfLife/video/developerStories-en.webm");
videoPlayer.load();
var playPromise = videoPlayer.play();
// In browsers that don’t yet support this functionality,
// playPromise won’t be defined.
if (playPromise !== undefined) {
playPromise.then(function() {
// Automatic playback started!
}).catch(function(error) {
// Automatic playback failed.
// Show a UI element to let the user manually start playback.
});
}
Комментарии:
1. Возможно ли установить политику Chromium, разрешенную для автозапуска, в Electron, чтобы автозапуск всегда выполнялся успешно, даже если пользователь не запускает воспроизведение вручную?
2. Извините, я никогда не пробовал это, поэтому не знаю. Но, насколько я знаю, решение, которое я предоставил, будет работать для автоматического воспроизведения видео