使用AS3 Adob e AIR加载YouTube视频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用AS3 Adob e AIR加载YouTube视频相关的知识,希望对你有一定的参考价值。

众所周知,ActionScript的Youtube API已经停止使用。所以,我寻找在我的Adobe AIR应用程序中运行Youtube视频的替代方案。

我测试了那些代码。以下是每个人发生的事情。

1°代码:

var hl:htmlLoader = new HTMLLoader();
hl.width = 500;
hl.height = 300;
hl.addEventListener(Event.COMPLETE, complete); //event is dispatched, but with js errors
hl.load(new URLRequest("http://www.youtube.com/embed/XXXXX"));

结果:出现错误“Object.freeze不是函数”

2°代码:

var webView:StageWebView = new StageWebView();
webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
webView.stage = stage;
webView.addEventListener(Event.COMPLETE, complete); //event is dispatched, but with js errors
webView.loadURL("http://www.youtube.com/embed/XXXXX");

结果:出现相同的错误“Object.freeze不是函数”。

3°代码:

// changed 'useNative' param to true for StageWebView
var webView:StageWebView = new StageWebView(true);
// the same code of 2° Code

结果:没有错误,但页面未完全加载且视频无法播放。

4°代码:

// I've changed loadURL to loadString, for both methods...
var stringPage:String = '<html><head></head><body><iframe width="640" height="360" src="http://youtube.com/embed/XXXXXX" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></body></html>';
webView.loadString(stringPage);
// or
hl.loadString(stringPage);

结果:出现黑色矩形,但视频未加载。

5°代码:

// I've tried use the AS3 API URL:
hl.load(new URLRequest("http://www.youtube.com/v/XXXXXX"));
// or
webView.loadURL("http://www.youtube.com/v/XXXXXX");

结果:出现“不再支持Flash嵌入视频”消息,并且无法播放视频。

“陌生人的事”:

// the Youtube Page Video works!
webView.loadURL("http://www.youtube.com/watch?v=XXXXXX");
// or
hl.load(new URLResquest("http://www.youtube.com/watch?v=XXXXXX"));

问题是:有人知道如何在2019年加载带有ActionScript 3.0的Youtube视频吗?

答案

尝试基本的嵌入(没有autoplayallowAccelorometeretc):

而不是将"'混合,而是在需要的时候取消"报价。 例如:width="640"给出了width="640"的字符串

所以:

'<html><head></head><body><iframe width="640" ... '; 

//should be written as...
"<html><head></head><body><iframe width="640" ... "; 

代码4 :(未经测试)

// I've changed loadURL to loadString, for both methods...
var stringPage:String = "<html><head></head><body><iframe width="640" height="360" src="http://youtube.com/embed/XXXXXX" frameborder="0" </iframe></body></html>";
webView.loadString(stringPage);
// or
hl.loadString(stringPage);

我希望小细节是什么修复它并给出正确的Youtube加载。

PS: 另一个选择是从Youtube服务器访问直接MP4(跳过Youtube播放器嵌入)。

如果您对直接链接感兴趣,请告诉我(您必须制作自己的AS3播放器控件)。

以上是关于使用AS3 Adob e AIR加载YouTube视频的主要内容,如果未能解决你的问题,请参考以下文章

AS3/AIR 使用 SharedObject 保存/加载多个用户名

使用 Adob​​e AIR 构建插件架构

将 Flex 转换为 Adob​​e Air

AS3 如何将 adMob 添加到 Adob​​e Flash/Animate?

使用 OpenFL 将 Haxe Flash 应用程序编译到 Adob​​e AIR

选择大量文件时 Adob​​e Air 应用程序关闭