如何使用Actionscript 3在IOS上播放YouTubevideo

我正在尝试获取YouTube播放列表并在IOS上播放video。 我的应用程序在Android和Flex模拟器上工作正常,但不适用于IOS。 看起来这里在IOS中加载swfs是有限制的。

我正在使用as3-youtube-data-api 。 任何人都可以指导我如何在IOS上使用as3(Flash Builder 4.5)embedded或播放youtubevideo,或者有其他方法可用吗?

注意:应用程序商店中有“思科技术支持”应用程序,可以播放embedded到应用程序中的YouTubevideo。

更新可以VideoDisplay工作,因为我没有mp4我的播放列表?

更新

这是至less能够在IOS上播放YouTubevideo( 阅读此 ),但再次Android给我一个黑屏。 我能用这种方法做些什么吗? 请给出你的build议。 谢谢

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 ,所以我无法停止video。

更新

这是我为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+""); } 

正如您在提供的链接中指出的,您不能在iOS上运行actionscript swfs。 在Android上也不会有什么办法可以做到。 VideoDisplay也不行,因为它是动作。

要在iOS上播放Youtubevideo,您可以使用(如您所提及的应用程序和iOS上的其他基于YouTube的应用程序)本机Objective-C库 ,这些库将全面支持播放列表和播放video; 或者也可以尝试在Web应用程序中使用JavaScript客户端。