我正在尝试获取 youtube 播放列表并在 IOS 上播放视频。我的应用在 Android 和 Flex 模拟器上运行良好,但在 IOS 上无法运行。看起来这里在 IOS 中加载 swfs 有限制。
我为此目的使用as3-youtube-data-api。任何人都可以指导我如何在 IOS 上使用 as3 (Flash Builder 4.5) 嵌入或播放 youtube 视频,或者有其他可用的方法吗?
注意:应用商店中有“思科技术支持”应用,可以播放应用中嵌入的 youtube 视频。
更新VideoDisplay 可以工作,因为我的播放列表没有 mp4?
更多更新
这就是至少 m 能够在 IOS 上播放 youtube 视频的方式(阅读此内容),但 android 又给了我一个黑屏。我可以用这种方法做些什么吗?请提出您的建议。谢谢
var webView:StageWebView;
public function init():void
{
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
webView = new StageWebView();
webView.viewPort = new Rectangle( 0, 35, this.stage.stageWidth, this.stage.stageHeight);
webView.stage = this.stage;
var htmlString:String = "<!DOCTYPE HTML>" +
"<html><body><script>" +
"var tag = document.createElement('script');"+
"tag.src = \"http://www.youtube.com/player_api\";"+
"var firstScriptTag = document.getElementsByTagName('script')[0];"+
"firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);"+
"var player;"+
"function onYouTubeIframeAPIReady() {"+
"player = new YT.Player('player', {"+
"events: {"+
"'onReady': onPlayerReady,"+
"'onStateChange': onPlayerStateChange"+
"}"+
"});"+
"}"+
"function onPlayerReady(event) {"+
"event.target.playVideo();"+
"}"+
"var done = false;"+
"function onPlayerStateChange(event) {"+
"if (event.data == YT.PlayerState.PLAYING && !done) {"+
"setTimeout(stopVideo, 6000);"+
"done = true;"+
"}"+
"}"+
"function stopVideo() {"+
"player.stopVideo();"+
"}"+
"</script>"+
"<iframe id=\"player\" type=\"text/html\" width=\"100%\" height=\"400\" src=\"http://www.youtube.com/embed/g-YW2jkd-Ac\" frameborder=\"0\"></iframe>" +
"</body></html>";
webView.loadString( htmlString );
//webView.loadURL("http://www.youtube.com/embed/M7lc1UVf-VE");
}
public function dispose():void {
try {
webView.stage=null;
} catch (e:Error) { trace("error")}
}
使用Capabilities.os
我可以识别操作系统并通过 IOS 和 android 工作。
同样,我们无法在 IOS 中调用 javascript,因此我无法停止视频。
更新
这就是我为IOS所做的。它提供了内置的播放器控件
public function initIOS():void
{
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
webView = new StageWebView();
webView.viewPort = new Rectangle( 0, 40, this.stage.stageWidth, this.stage.stageHeight-40);
webView.stage = this.stage;
webView.loadURL("http://www.youtube.com/embed/"+data.videoId+"");
}