Angular 从视频停止的位置恢复视频

Angular 从视频停止的位置恢复视频,angular,Angular,从视频停止的位置恢复视频。下面是代码片段 @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { name = 'Angular 6'; constructor() { } @ViewChil

从视频停止的位置恢复视频。下面是代码片段

 @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
      name = 'Angular 6';

  constructor() 
   {  }

    @ViewChild('iframe') iframe: ElementRef;

    ngOnInit() {

    }



    ngAfterViewInit() {
        alert('success');
        let doc = this.iframe.nativeElement.contentDocument || this.iframe.nativeElement.contentWindow;
        if (typeof doc.addEventListener !== undefined) {
          doc.addEventListener("click", this.iframeClickHandler, false)
        } else if (typeof doc.attachEvent !== undefined) {
          doc.attachEvent("onclick", this.iframeClickHandler);
        }
      }
      iframeClickHandler() {
        alert("Iframe clicked");
      }
}
html
这里有一些您需要的东西:

  • 获取视频的当前时间
  • 将当前时间保存到某个地方
  • 播放保存的时间戳中的视频(如果有)
下面是一个可能的方法的粗略想法: 在组件中,将视频的时间戳保存在
timestamp
变量中

以下是如何节省时间:

不时将此时间戳保存在
本地存储器
会话存储器
中。 何时保存取决于您,
ngondestry()
是一种可能性,但请记住,如果浏览器意外关闭(但您可以使用解决方法:),或者您可以定义间隔,则不会调用它

在本地存储中,您不必担心组件被破坏和重新实例化,值始终存在

然后,每次用视频实例化组件时,检查本地存储值是否设置为某个值(
localStorage.getValue('timestamp')
),如果是,则将组件变量分配给它(可能在
ngOnInit()
),并添加
?autoplay=1#t={timestamp}
如果组件中存在
时间戳
var,则发送到vimeo iframe url

最重要的是,您可能需要在某个点清除
本地存储
值(视频已完成,…),可能还有其他一些需要调整的地方,但这是我的想法


这不是一个解决方案,更像是一些解决问题的粗略方向。 我没有测试过任何一个,但我希望它能让你有所开始。请随意评论我可能错过的内容

   <div>
        <iframe width="560" height="315" src="https://player.vimeo.com/video/197933516" frameborder="0" id="iframe" allowfullscreen
            #iframe></iframe>
    </div>