如何使用ActionScript 3 IOS播放YouTube视频 [英] How to play youtube videos on IOS using Actionscript 3

查看:344
本文介绍了如何使用ActionScript 3 IOS播放YouTube视频的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想提取的YouTube播放列表,播放视频的IOS。我的应用程序工作正常,在Android和Flex模拟器,但不能在IOS工作。貌似在IOS 上装载主权财富基金的限制此处

我使用 AS3-YouTube的数据API 为宗旨。任何人都可以指导我如何可以嵌入我或者使用AS3(Flash Builder的4.5)在IOS播放YouTube视频或有任何其他方式提供?

注:有一个在应用程序商店思科技术支持的应用程序,它播放YouTube视频嵌入到应用程序

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

更多更新

这是多么至少m次能够播放YouTube视频的IOS(阅读本 ),但同样的android给了我一个黑色的屏幕。有什么我可以用这个方法呢?请给你的建议。谢谢

  VAR web视图:的StageWebView;
公共职能的init():无效
{
    NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;

    web视图=新的StageWebView();
    webView.viewPort =新的Rectangle(0,35,this.stage.stageWidth,this.stage.stageHeight);
    webView.stage = this.stage;
    VAR htmlString:字符串=!< D​​OCTYPE HTML>中+
        < HTML><身体GT;<脚本>中+
        var标记= document.createElement方法('脚本');+
        tag.src = \的http://www.youtube.com/player_api \;+
        变种firstScriptTag = document.getElementsByTagName(脚本)[0];+
        firstScriptTag.parentNode.insertBefore(标签,firstScriptTag);+
        VAR播放器;+

        功能onYouTubeIframeAPIReady(){+
            球员=新YT.Player('运动员',{+
              事件:{+
                'onReady':onPlayerReady,+
                'onStateChange':onPlayerStateChange+
              }+
            });+
        }+
        功能onPlayerReady(事件){+
            event.target.playVideo();+
        }+
        VAR做= FALSE;+
          功能onPlayerStateChange(事件){+
            如果(event.data == YT.PlayerState.PLAYING和放大器;&安培;!做){+
              的setTimeout(stopVideo,6000);+
              做=真;+
            }+
          }+
          功能stopVideo(){+
            player.stopVideo();+
        }+

        &所述; /脚本>中+
        < IFRAME ID = \播放器\型= \text / html的\WIDTH = \100%\高度= \400 \SRC = \http://www.youtube.com/embed / G-YW2jkd-AC \FRAMEBORDER = \0 \>< / IFRAME>中+
        < /身体GT;< / HTML>中;
    webView.loadString(htmlString);
    //webView.loadURL("http://www.youtube.com/embed/M7lc1UVf-VE);
}
公共职能的Dispose():无效{
    尝试 {
        webView.stage = NULL;
    }赶上(五:错误){跟踪(错误)}
}
 

使用 Capabilities.os 我可以识别操作系统,并通过iOS和Android的工作我的方式。

此外,我们不能调用JavaScript IOS ,让我欲罢不能的视频。

更新

这就是我所做的IOS。它提供了内置播放器控件

 公共职能initIOS():无效
{
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;

web视图=新的StageWebView();

webView.viewPort =新的Rectangle(0,40,this.stage.stageWidth,this.stage.stageHeight-40);

webView.stage = this.stage;
webView.loadURL(http://www.youtube.com/embed/+ data.videoId +);
}
 

解决方案

正如你已经注意到你所提供的链接,你不能运行在iOS动作主权财富基金。它不会很长之前,不会有任何的方式来做到这一点在Android上,无论是。 VideoDisplay的也将无法正常工作,因为,它的动作。

要在iOS上播放YouTube视频,你可以使用(如应用程序,你提到的和iOS上其他YouTube为基础的应用程序做)的的本机的Objective-C库的,这将对获取播放列表和播放视频的全面支持;或者也可以尝试使用JavaScript客户端的web应用程序。

I am trying to fetch youtube playlist and play videos on IOS. My app works fine on Android and Flex simulators but does not work on IOS. Looks like there is a limitation on loading swfs in IOS here.

I am using as3-youtube-data-api for the purpose. Can anyone guide me on how can I embed or play youtube videos using as3 (Flash Builder 4.5) on IOS or is there any other way available?

Note: There is "Cisco Technical Support" app in app store, which plays youtube videos embedded in the app.

Update can VideoDisplay work, as I do not have mp4 for my playlists?

More Update

this is how at least m able to play youtube videos on IOS (read this), but again android gives me a black screen. Is there something I can do with this approach? Please give your suggestions. Thanks

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")} 
}

Using Capabilities.os I can identify the OS and work my way through IOS and android.

Again, we cannot invoke javascript in IOS, so I am unable to stop the video.

Update

This is what I did for IOS. It gives in built player controls

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+"");
}

解决方案

As you've noted with the link you provided, you can't run actionscript swfs on iOS. It won't be long before there won't be any way to do it on Android, either. VideoDisplay also won't work because, well, it's actionscript.

To play Youtube videos on iOS, you can use (as the app you mentioned and other youtube-based apps on iOS do) the native Objective-C libraries, which will have full support for fetching playlists and playing videos; or could also try using the javascript client in a webapp.

这篇关于如何使用ActionScript 3 IOS播放YouTube视频的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆