youtubeTest
♥0 |
Line 97 |
Modified 2013-11-18 12:44:29 |
MIT License
archived:2017-03-30 02:43:01
ActionScript3 source code
/**
* Copyright tepe ( http://wonderfl.net/user/tepe )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/Ag83
*/
package {
import flash.display.Sprite;
import flash.events.*;
public class FlashTest extends Sprite {
private var id:String = "BBAUCUYnX9M";
private var yp:YoutubePlayer;
public function FlashTest() {
yp= new YoutubePlayer();
addChild(yp);
yp.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(e:MouseEvent):void{
if(yp.state==1)yp.seek = 100;
else yp.play(id);
}
}
}
import flash.display.*;
import flash.net.*;
import flash.system.*;
import flash.events.*;
import flash.text.*;
class YoutubePlayer extends Sprite{
private var WIDTH:int = 320;
private var HEIGHT:int= 240;
private var player:Object;
//private var players:Array;
private var _state:int = -1;//プレイヤー状態
private var txt:TextField;
public function YoutubePlayer():void{
var loader:Loader;
loader = new Loader();
Security.loadPolicyFile('http://www.youtube.com/crossdomain.xml');
loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
const req:String = "http://www.youtube.com/apiplayer?enablejsapi=1&version=3";
loader.load(new URLRequest(req));//youtubeプレイヤー読み込み
txt = new TextField();
txt.textColor = 0x00ff00;
}
//ローダー初期化
private function onLoaderInit(e:Event):void{
var loader:Loader = e.currentTarget.loader;
loader.content.addEventListener("onReady", onPlayerReady);
loader.content.addEventListener("onStateChange",onChangeState);
addChild(loader);
addChild(txt);
}
public function load(id:String):void{
player.clearVideo();
player.cueVideoById(id);//動画ID
}
public function play(id:String=null):void{
if(id!=null)load(id);
player.playVideo();//再生
}
public function pause():void{
player.pauseVideo();
}
public function stop():void{
player.clearVideo();
}
public function get seek():Number{
return player.getDuration();
}
public function set seek(time:Number):void{
player.seekTo(time);
}
public function get length():Number{
return player.getDuration();
}
public function get state():int{
return _state;
}
//プレイヤー設定
private function onPlayerReady(e:Event):void{
player = e.currentTarget;
player.setSize(WIDTH, HEIGHT);//サイズ
}
//動画ステータス変化
private function onChangeState(e:Event):void{
_state = player.getPlayerState()
txt.appendText(_state.toString()+":");
//動画終了
if(state == 0){
txt.appendText("stop");
}
else if(_state == 1){
txt.appendText("play");
}
else if(_state == 2){
txt.appendText("pause");
}
//バッファリング中
else if(_state == 3){
txt.appendText("loading.....");
}
else if(_state == 5){//頭出し済み
txt.appendText("loading.....");
}
txt.appendText("\n");
txt.scrollV = txt.maxScrollV;
}
}//class
//}//package