我的Flex/AS3应用程序中有一个Youtube API无边框播放器.一切正常,直到上个月我们开始在页面重新加载时遇到放大问题.
以下是播放YouTube视频的应用程序的正常状态示例:
重新加载网页后:
这仅在某些广告上发生,一旦发生,它将很容易反复出现,直到此广告被其他内容更改为止.我不确定广告导致问题的原因并不是100%确定它是导致问题的广告,但几乎99%就是它.
有人经历过同样的问题吗?或者,如何在不收到沙盒违规例外的情况下强制执行Google广告不会影响主应用程序?
不幸的是,提供应用程序的源代码非常复杂,但是YoutTube播放器的实现完全根据谷歌的例子,并且已经在生产很长时间了.
我的Flex/AS3应用程序中有一个Youtube API无边框播放器.有时我需要播放器连续播放Youtube的电影(不间断).
在播放12小时或更长时间之后,由第一个播放器初始化请求生成的API令牌将过期.
http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0
Run Code Online (Sandbox Code Playgroud)
这里的问题是,在令牌过期后再次调用的API调用loadVideoById无法开始播放视频,因为令牌没有自动续订.
在播放我们的播放列表(每个项目通过调用loadVideoById播放)播放 4-5小时或更长时间后,视频有时会开始播放并突然卡住.虽然没有调度错误事件.
因此,对于第一个问题,解决方案是通过卸载播放器并使用API调用再次加载它来每12小时更新一次令牌:
http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0
Run Code Online (Sandbox Code Playgroud)对于第二个问题,没有任何想法.需要你的帮助.
private function CreateYoutubePlayerSWF():void {
...
theYoutubeLoader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
theYoutubeLoader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0"));
...
}
private function PlayPendingVideo():void {
...
theYoutubePlayer.loadVideoById(videoWaitingToPlayInfo.videoWaitingToPlay);
...
}
Run Code Online (Sandbox Code Playgroud)
当玩家停止玩时,这就是我在小提琴手中得到的:
"request": {
"method": "GET",
"url": "http://www.youtube.com/get_video?cpn=Lj5HaLu7MzS5kG-T&fmt=35&splay=1&t=vjVQa1PpcFNwMVrYUDFOTTG-7co1uJFo3oyrB-qoP_k=&video_id=j-vJJSqw5Q4&eurl=http%3A%2F%2Fwatchitoo.com%2Fiframe.php%3Fid%3Dwwa-154%26scale%3Dfalse%26layout%3D14&asv=3&el=embedded&ps=chromeless&ptk=youtube_none&noflv=1",
...
"queryString": [
{
"name": "cpn",
"value": "Lj5HaLu7MzS5kG-T"
},
{
"name": "fmt",
"value": "35"
},
{
"name": "splay",
"value": "1"
},
{
"name": "t",
"value": "vjVQa1PpcFNwMVrYUDFOTTG-7co1uJFo3oyrB-qoP_k"
},
{
"name": "video_id",
"value": "j-vJJSqw5Q4"
},
{ …
Run Code Online (Sandbox Code Playgroud)