离子iOS-HTML视频在复制了一些视频后变黑了

时间:2018-12-28 23:29:19

标签: ios ionic3 angular5 html5-video wkwebview

我正在构建一个应用,其中随着页面流的前进,用户可以使用不同的组件来复制多个html5视频。视频的mp4来源来自本地文件系统。

我在服务器上部署的Web版本上一切正常,人们正在使用Chrome。

但是,在iOS中,在复制了大约18个视频之后,所有视频都停止工作,并且只显示黑框。 (我能够在iPad 3和4上重现它) 关于什么可能导致此的任何想法?我觉得它一定与某种缓存/内存有关,因为问题仅在复制了大约数量的视频之后才会出现。另外,在我关闭并重新打开该应用程序后,这些视频仍可以再次播放。

视频标记示例

    <video id="video_1" playsinline playsinline="playsinline" webkit-playsinline webkit-playsinline="webkit-playsinline">
       <source [attr.src]="ds.normalizeURL(video[0])" type="video/mp4"/>
    </video>

我将尝试查看是否与File.cacheDirectory上缓存的文件有关,但是我对这种方法并不感到幸运。

另外, Ionic是否有办法播放具有本机功能的视频,但能够在页面布局而不是全屏中内联播放视频?我什么都没找到

我的版本: 离子性:3.9.2 角度:5.2.9

1 个答案:

答案 0 :(得分:0)

这确实是与内存/垃圾回收相关的问题。 我实施了this,问题就消失了。

import {Component, Input, ViewChild} from 'angular2/core';

@Component({
   selector: "releasable-video",
   template: '<video [src]="src" #player></video>'
})
export class ReleasableVideoComponent {

@Input() src : string
@ViewChild('player') player;

constructor() {

}
ngOnDestroy() {
    // the .nativeElement property of the ViewChild is the reference to the <video> 
    this.player.nativeElement.src = '';
    this.player.nativeElement.load();
}