在AIR应用程序(AS3)中播放YouTube视频

时间:2016-02-29 08:25:10

标签: android actionscript-3 youtube air

我想知道是否可以使用AS3代码在AIR应用内播放YouTube视频。

似乎不推荐使用youtube API ...

如果有人知道某种方式或好的教程。

THX ---------------- EDIT

我试过这段代码:

Error Domain=NSCocoaErrorDomain Code=2047 "Photos Access not allowed (authorization status 0)" UserInfo={NSLocalizedDescription=Photos Access not allowed (authorization status 0)}

但它正在加载youtube的所有页面(youtube视频+推荐的视频..),右侧有一个滚动条。 我只想加载视频(不是所有的YouTube页面)。

2 个答案:

答案 0 :(得分:0)

修改:

  

我只想加载视频(不是所有的YouTube页面)。

使用以下链接格式:

url = "https://www.youtube.com/v/hFupHx5G44s";
例如,

选择如下格式:
https://www.youtube.com/v/hFupHx5G44s - 使用/v/获取SWF版本 https://www.youtube.com/embed/hFupHx5G44s - 使用/embed/获取HTML5版本

  

适用于ANDROID AIR应用。

你应该在问题中提到这个细节。您可以尝试添加

Security.allowDomain("www.youtube.com");
Security.loadPolicyFile("https://www.youtube.com/crossdomain.xml");


//////////# End of Edit


为什么不使用stageWebView将嵌入(HTML5)播放器加载为网页?

弃用的YouTube AS3 API可能意味着您无法创建自己的用户界面或使用搜索等功能。您可以轻松地重新创建搜索功能(加载"搜索结果"源代码转换为字符串并通过解析源代码提取链接)。

无论如何,我只是尝试了下面的代码,它适用于AIR桌面应用程序。
也许你可以用它作为起点......

package  
{

import flash.display.MovieClip;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;

import flash.events.*;
import flash.system.*;


public class Youtube_AIR_code extends MovieClip 
{
    public var YT_Loader : Loader;
    public var my_VIDEO_ID : String = "hFupHx5G44s"; //# the YouTube ID

    public function Youtube_AIR_code () 
    {
        Security.loadPolicyFile("http://www.youtube.com/crossdomain.xml");

        YT_Loader = new Loader();
        YT_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, YT_Ready );
        YT_Loader.load( new URLRequest("http://www.youtube.com/v/" + my_VIDEO_ID) );

    }

    function YT_Ready (e:Event) : void
    {
        trace("YouTube SWF :: [status] :: Loading Completed");

        //addChild(YT_Loader);

        //# Wait for Youtube Player to initialise
        YT_Loader.content.addEventListener("onReady", on_YT_PlayerLoaded );

    }

    private function on_YT_PlayerLoaded (e:Event) : void
    {
        //# Check Original Width/Height - Scale it proportionally               
        trace( "YT_Loader content Width  : " + YT_Loader.content.width );
        trace( "YT_Loader content Height : " + YT_Loader.content.height );

        //# Testing changed size and position
        YT_Loader.width = 320; YT_Loader.height = 240;
        YT_Loader.x = 30; YT_Loader.y = 100;

        addChild(YT_Loader); //# can add to stage only

    }

} //# End Public Class

} //# End Package

答案 1 :(得分:0)

您是否在My Flash Labs中看过视频播放器ANE?

http://www.myflashlabs.com/product/video-player-ane-adobe-air-native-extension/