我有一个小问题,我需要修复Ionic 2中一个非常基本的演示Android应用程序。
当在主页上播放Youtube视频时,如果按电源按钮或手机进入睡眠/锁定模式,Youtube视频将继续播放。此问题导致Google拒绝Play商店中的应用,因为他们不允许在Youtube嵌入上发生这种情况。
所以我需要添加一些代码来暂停视频,如果状态发生变化,并在它再次唤醒时恢复。
我需要添加的功能似乎被称为onPause和onResume,但我不确定如何以及在何处添加代码以使此功能与此自定义Youtube代码一起使用。
以下是repo中的文件,以及APK(仅3mb)只是在空白离子2安装中更改主页,您可以在其中查看问题。
答案 0 :(得分:6)
我会添加评论添加到n00b所说的内容,但我还没有50个声望点。添加到noobs的答案,并给予额外的提示。请先将n00b标记为正确的答案。
import { DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';
export class page {
currentVideoSource: SafeResourceUrl;
constructor(public navCtrl: NavController, private sanitizer: DomSanitizer) {
this.currentVideoSource = this.sanitizer.bypassSecurityTrustResourceUrl("youtubeurl");
}
现在src应该可以使用iframe中的以下内容
[src]="currentVideoSource";
答案 1 :(得分:1)
您应该将该URL添加到Angular2 DomSanitizer例外列表中。您看到的是Angular2的一项安全功能,可以阻止人们在我们的应用中加载恶意URL。
https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
答案 2 :(得分:0)
从此blog post,
它表示您可以使用Apache Cordova事件监听器。
Apache Cordova事件不需要为IonicFramework安装额外的插件。
要注册一个事件,我们必须在$ ionicPlatform.ready()方法中注册。
有些听众
resume - 当本机平台将应用程序从后台拉出时,将触发resume事件。
暂停 - 将应用程序放入后台时会触发事件。
在线 - 当应用程序联机并且设备连接到Internet时,将触发此事件。
离线 - 当应用程序脱机并且设备未连接到Internet时,将触发事件。
在您的JS文件中,添加
sigusr1_handler()
有关支持的事件的完整列表,请参阅Apache Cordova official website
答案 3 :(得分:0)
我通过直接浏览Youtube视频插件来避免您遇到的问题,您可以在此处看到有关如何安装的预览视频
https://www.udemy.com/master-ionic-3-with-ionic-native-and-cordova-integrations
NODE
ionic cordova add https://github.com/JonSmart/CordovaYoutubeVideoPlayer
npm install @ionic-native/youtube-video-player
APP.MODULE.TS
import {YoutubeVideoPlayer} from '@ionic-native/youtube-video-player'
添加到提供商列表YoutubeVideoPlayer
HOME.TS
import {YoutubeVideoPlayer} from '@ionic-native/youtube-video-player'
在导出类
下constructor (private videoPlayer: YoutubeVideoPlayer ) {}
playVideo(video: Video) {
this.videoPlayer.openVideo(video.videoId)
}
Android所需的API密钥 搜索" Youtube数据API概述"
config.xml("在allow-intent"下)