ionic-framework - IonicFramework - 在 iOS 上以全屏模式停止视频自动播放
问题描述
简而言之,我使用 iframe 在我的应用程序中嵌入了一个 youtube 视频,并将其设置为在用户进入该特定页面后播放器准备好时自动播放。
- 我面临的问题:视频播放器在 Android 设备上的表现与我预期的一样。用户进入页面,视频自动播放,无需按“播放”按钮,当他/她想全屏时,只需点击“全屏”即可。当该用户想要暂停视频时也是如此。
但是,在 iOS 上:用户进入页面 --> 视频以全屏模式自动播放,这绝对不是我想要的 --> 当用户退出全屏并且他/她点击“播放”时,视频会暂停,它再次全屏显示。基本上,它只能全屏播放。
-问题是:有什么方法可以实现与 Android for iOS 相同的视频播放器行为?非常感谢,任何帮助将不胜感激。
- 这是html:
<iframe id="iframeTube" width="100%" height="250" src="https://www.youtube.com/embed/b5cv7ihxBeY?enablejsapi=1&fs=1" frameborder="0"
style="border: solid 4px #37474F" allowfullscreen></iframe>
- 这是 .ts 文件中正在处理的视频:
ionViewWillEnter() {
this.onYouTubeIframeAPIReady();
}
ionViewDidEnter() {
this.fullscreenProcess(this);
}
onYouTubeIframeAPIReady() {
this.player = new YT.Player('iframeTube', {
events: {
'onReady': this.onPlayerReady,
'onStateChange': this.onPlayerStateChange
}
});
}
onPlayerReady(event) {
console.log('ready')
var embedCode = event.target.getVideoEmbedCode();
event.target.playVideo();
var self = this;
}
fullscreenProcess(self)
{
document.addEventListener("webkitfullscreenchange", function (event) {
if (document.webkitIsFullScreen) {
console.log("full")
self.screenOrientation.lock(self.screenOrientation.ORIENTATIONS.LANDSCAPE);
}
else {
self.screenOrientation.unlock();
console.log("not full")
}
});
}
解决方案
推荐阅读
- r - 如何根据光谱名称聚合 pavo 包 (R) 中的光谱
- html - 如果缺少某些数据,如何将 R 中的数据框与网络抓取放在一起?
- node.js - 命令 'grunt' 不会生成文件夹: dist
- architecture - 用于实时扫描的 API 拦截器
- java - 将 Button 中的图标大小调整为与 Buttons 大小一样大(+ 使用 LayoutManager)并使 Font 与 Buttons 大小一样大
- laravel - 如何使用 Laravel 5.8 在 Sqlite3 中强制区分大小写列
- c++ - 我可以为数组的所有成员添加一个值吗
- hyperledger-fabric - 如何在centOS 上安装#hyperledger-fabric 设置?
- sql - 删除 jsonb 列中深度嵌套数组中的元素 - Postgres
- c# - 如何接收带有 application-json 内容类型和边界的正文附件?