谁能解释一下为什么这个自动播放视频在 Chrome 中不起作用?
视频存储在 firebase 存储中。当您访问页面然后返回主页时它会播放,但当您刷新时第一次进入页面时不会播放。这也是一个 Angular 6 应用程序。
<video autoplay muted loop>
<source type="video/mp4" src="https://firebasestorage.googleapis.com/v0/b/gortonluxury.appspot.com/o/videos%2Fhero-video.mp4?alt=media&token=1231bda8-4240-4c1d-a0b9-9c5b50b320d0">
</video>
<video loop muted autoplay oncanplay="this.play()" onloadedmetadata="this.muted = true">
<source src="video.mp4" type="video/mp4">
</video>
使用
onloadedmetadata
& `oncanplay="this.play()"< are the javascript solutions to getting it to load on an Angular 6 project.
对于纯 Angular 解决方案,我们需要使用 Angular 事件和模板变量:
<video #video
(canplay)="video.play()"
(loadedmetadata)="video.muted = true"
...// as before
</video>
您可以像“纯角度”解决方案一样全局覆盖视频[自动播放]标签
@Directive({
selector: 'video[autoplay]',
host: {
'autoplay': '',
'oncanplay': 'this.play()',
'onloadedmetadata': 'this.muted = true'
}
})
export class VideoAutoplayDirective {}
我花了几个小时解决这个问题并找到了解决方案:
<video [autoplay]="ture" [muted]="true" [loop]="true" src="{{src}}"></video>
对于我来说,以下内容足以让 Angular 10 像 GIF 一样自动播放视频:
<video
src="...mp4"
type="video/mp4"
playsinline
loop
autoplay
[muted]="true"
></video>
另外请不要忘记检查 chrome 的自动播放政策:
需要将视频静音才能自动播放