我正在构建一个应用,其中随着页面流的前进,用户可以使用不同的组件来复制多个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
答案 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();
}