【问题标题】:How to play youtube videos on IOS using Actionscript 3如何使用 Actionscript 3 在 IOS 上播放 youtube 视频
【发布时间】:2013-06-25 12:34:28
【问题描述】:

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

我为此目的使用as3-youtube-data-api。谁能指导我如何在 IOS 上使用 as3 (Flash Builder 4.5) 嵌入或播放 youtube 视频,或者有其他可用的方法吗?

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

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

更多更新

这就是至少 m 能够在 IOS (read this) 上播放 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工作。

再次,我们cannot invoke javascript in IOS,所以我无法停止视频。

更新

这就是我为 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 air flex4 youtube-api


    【解决方案1】:

    正如您在提供的链接中所指出的,您无法在 iOS 上运行 actionscript swfs。用不了多久,Android 上也没有任何方法可以做到这一点。 VideoDisplay 也不起作用,因为它是 actionscript。

    要在 iOS 上播放 Youtube 视频,您可以使用(就像您提到的应用程序和 iOS 上其他基于 youtube 的应用程序一样)native Objective-C libraries,它将完全支持获取播放列表和播放视频;或者也可以尝试在 webapp 中使用 javascript 客户端。

    【讨论】:

    • 感谢您的回复。我尝试了this,它可以让我在 IOS 上播放视频,但不确定如何停止视频和其他内容,这种 iframe 方法是否正确?对此有何建议?我已经用 iframe 更新了我的问题,它可以在 IOS 上播放 youtube 视频。
    • 我正在使用as3-youtube-data-api,而后者又使用native Objective-C Library for youtube。有什么帮助吗?
    • 不,as3-youtube-data-api 不使用 Objective-C ...它使用无法在 iOS 上运行的 Actionscript。如果控制播放器所需的 JavaScript 对您不起作用,您需要使用 XCode 和 Objective-C 编写原生 iOS 应用程序。但是,javascript 方法应该可以工作,如果您使用 phonegap 之类的东西,您应该能够使其跨平台。关于堆栈溢出有很多关于这样做的问题;我会尽快找出一些参考资料。
    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 2016-09-22
    • 2015-11-19
    • 2015-01-09
    • 2015-11-08
    • 2013-11-20
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多