我知道有类似的主题,但要么是过时的,要么是JAVA代码的答案。
似乎android不再允许自动播放,而是需要用户手势。虽然,我想确保在我停止尝试之前用完所有(合理的)选项。
播放在iOS和桌面上完美运行。
现在有没有办法在Android设备上进行自动播放?
视频标记
<video
muted="true"
playsinline="true"
loop="true"
class="bg-video"
autoplay="true"
>
<source
src="videos/low-android-480.mp4"
class="bg-video-source"
type="video/mp4" // Tried also without specifying the type
/>
</video>
- 黑客尝试发送用户手势(不工作)
const event = new MouseEvent("touchstart", {
view: window,
bubbles: true,
cancelable: true,
});
window.addEventListener("touchstart", function videoStart() {
videoElement.play();
// remove from the window and call the function we are removing
window.removeEventListener("touchstart", videoStart);
});
...
if (videoElement.paused) {
window.dispatchEvent(event);
}
- 只需致电videoElement.play();
(无效)
更新#1
像这样修改的hack示例dispatchEvent部分
window.setTimeout(() => {
window.dispatchEvent(event);
});
在Android Chrome浏览器上播放视频。但不是在Native浏览器上。仍然在寻找那个解决方案...
更新#2
这是Jordi Castilla的答案中提到的文章的一个有用的片段。它让我发现实际的videoElement.play()
承诺在Android Native浏览器上被拒绝了。
const promise = videoElement.play();
if (promise !== undefined) {
promise.then(_ => {
// Autoplay started!
alert("started autoplay");
}).catch(error => {
// Autoplay was prevented.
alert("failed autoplay");
// Show a "Play" button so that user can start playback.
});
}
答案 0 :(得分:0)
好的,因为没有其他人在回答,对于有类似斗争的人来说,判决是这样的:
但是,对于Android Chrome浏览器, UPDATE#1 应该是如何在那里进行自动播放的指南。
快乐的编码!
N.B。我希望有人在这里证明我错了