0

youtube actionscript api に問題が発生しました... 問題は、再生ボタンと読み込み中のサインが表示され、ビデオの音声が聞こえるが、表示されないことです。

何故ですか?

コードは次のとおりです。

// myPlayer.as
package {
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
    import flash.net.*;
    public class myPlayer extends MovieClip {
        var player:Object;
        var loader:Loader;
        public function myPlayer() {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
            loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
            //loader.load(new URLRequest("http://www.youtube.com/v/O8vcyOKYH9g?enablejsapi=1&playerapiid=ytplayerx=400"));
            x=300;
            y=300;


        }

        function onLoaderInit(event:Event):void {
            addChild(loader);
            //loader.x+=loader.width/2;
            //loader.y+=loader.height/2;
            loader.content.addEventListener("onReady", onPlayerReady);
            loader.content.addEventListener("onError", onPlayerError);
            loader.content.addEventListener("onStateChange", onPlayerStateChange);
            loader.content.addEventListener("onPlaybackQualityChange", 
                    onVideoPlaybackQualityChange);
        }

        function onPlayerReady(event:Event):void {
            // Event.data contains the event parameter, which is the Player API ID 
            trace("player ready:", Object(event).data);

            // Once this event has been dispatched by the player, we can use
            // cueVideoById, loadVideoById, cueVideoByUrl and loadVideoByUrl
            // to load a particular YouTube video.
            player=loader.content;
            player.cueVideoById("O8vcyOKYH9g", 0, "default");
            //player.cueVideoByUrl("http://www.youtube.com/watch?v=2ekLO8BwxwE", 0, "default");}
        }
        function onPlayerError(event:Event):void {
            // Event.data contains the event parameter, which is the error code
            trace("player error:", Object(event).data);
        }

        function onPlayerStateChange(event:Event):void {
            // Event.data contains the event parameter, which is the new player state
            trace("player state:", Object(event).data);
        }

        function onVideoPlaybackQualityChange(event:Event):void {
            // Event.data contains the event parameter, which is the new video quality
            trace("video quality:", Object(event).data);
        }

    }
}

// main.as

package {
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
    import flash.net.*;
    public class main extends MovieClip {
        var m:myPlayer;
        public function main() {
            m=new myPlayer();
            addChild(m);
        }

    }
}

どうもありがとう!

4

1 に答える 1

1

これと同じ問題があり、URL でビデオを呼び出す直前に API の player.setSize( w, h ) メソッドを使用すると、Flex 3.5 でビデオが正しく表示されました。

Object( ytSwfLoader.content ).setSize( 300, 300 );
if ( vidsArr[ currVid ].indexOf( 'youtube.com' ) != -1 ) Object( ytSwfLoader.content ).loadVideoByUrl( vidsArr[ currVid ]);

また、YouTube API ドキュメントでは、loadVideoByUrl() メソッドは AS3 (Javascript のみ) では機能せず、 cueVideoByURL() のみが機能すると述べられていますが、上記のコードは実際にビデオを読み込んで再生しました。

于 2010-01-04T05:29:04.983 に答える