Angular HTML 全屏视频自动播放不起作用

问题描述 投票:0回答:8

谁能解释一下为什么这个自动播放视频在 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>
javascript angular typescript video autoplay
8个回答
66
投票
<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.


11
投票

对于纯 Angular 解决方案,我们需要使用 Angular 事件和模板变量:

<video #video 
    (canplay)="video.play()"
    (loadedmetadata)="video.muted = true"
    ...// as before
</video>

  

3
投票

您可以像“纯角度”解决方案一样全局覆盖视频[自动播放]标签

@Directive({
    selector: 'video[autoplay]',
    host: {
        'autoplay': '',
        'oncanplay': 'this.play()',
        'onloadedmetadata': 'this.muted = true'
    }
})
export class VideoAutoplayDirective {}

1
投票

我花了几个小时解决这个问题并找到了解决方案:

    <video [autoplay]="ture" [muted]="true" [loop]="true" src="{{src}}"></video>

0
投票

对于我来说,以下内容足以让 Angular 10 像 GIF 一样自动播放视频:

<video
  src="...mp4"
  type="video/mp4"
  playsinline
  loop
  autoplay
  [muted]="true"
></video>

0
投票

另外请不要忘记检查 chrome 的自动播放政策:

https://developer.chrome.com/blog/autoplay/


0
投票

需要将视频静音才能自动播放


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.