如何使用Actionscript 3在IOS上播放youtube视频



我正在尝试获取youtube播放列表并在IOS上播放视频。我的应用程序在Android和Flex模拟器上运行良好,但在IOS上不起作用。看起来在IOS中加载swfs有一个限制。

我使用的是as3 youtube数据api。有人能指导我如何在IOS上使用as3(Flash Builder 4.5)嵌入或播放youtube视频吗?或者有其他可用的方法吗?

注意:应用商店中有"思科技术支持"应用程序,它可以播放嵌入应用程序中的youtube视频。

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

更多更新

这就是为什么至少我能够在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+"");
}

正如您在提供的链接中所指出的,您无法在iOS上运行actionscript swfs。用不了多久,在安卓系统上也不会有任何方法做到这一点。VideoDisplay也不起作用,因为它是动作脚本。

要在iOS上播放Youtube视频,您可以使用(正如您提到的应用程序和iOS上其他基于Youtube的应用程序所做的那样)原生Objective-C库,该库将完全支持获取播放列表和播放视频;或者也可以尝试在web应用程序中使用javascript客户端。

相关内容

  • 没有找到相关文章

最新更新