0

こんにちは、いくつかの変数をビデオ プレーヤーの flashvars にエコーする php ページがあります。swf ファイルの flashvar "vid_file_name" が読み込まれ、再生されます。

しかし、何らかの理由で、phpページまたはflaファイルにハードコーディングするとシークバーが正しく機能
しませんが、phpページにエコーされると失敗します

エンコーディングの問題ではないようです

swf ファイルにテキスト フィールドを配置すると、ファイル名が表示されます。前に述べたように、「vid_file_name」var がインポートされ、ビデオが再生されます。シークバー コードに関しては次のとおりです。

 import fl.video.*;


// Set Variables

var flvControl:FLVPlayback = auditionVid;
var flashVars = this.loaderInfo.parameters;
var flvSource:String = "http://www.mysite.co.uk/uploads/live/"+String(flashVars.vid_file_name);
var pageURL:String=ExternalInterface.call('window.document.location.toString');
var baseURL:String ="http://www.mysite.co.uk/";
var pageToGoTo:URLRequest;
gotoPageBtn.visible = false;
gotoPageBtn.addEventListener(MouseEvent.CLICK,pageHandler)
gotoPageBtn.buttonMode = true;
function pageHandler(evt:MouseEvent):void{
     pageToGoTo =  new URLRequest(baseURL+"audition.php?user_id="+flashVars.user_id+"&vid_id="+flashVars.vid_id+"&vid_file_name="+flashVars.vid_file_name);
    navigateToURL(pageToGoTo, "_self");

} if(pageURL==baseURL||pageURL.indexOf(".co.uk/index.php") > -1 ){ gotoPageBtn.visible = true }

function readyHandler(event:VideoEvent):void

{

// flvControl.play() flvControl.autoPlay = false;

}

flvControl.addEventListener(VideoEvent.READY, readyHandler);

flvControl.source = flvSource;
flvControl.bufferTime = Number(10);
flvControl.playPauseButton = playpausebtn; 
flvControl.muteButton = mutebtn; 
flvControl.seekBar = mySeekBar;

誰にもアイデアはありますか?

4

1 に答える 1

0

こんにちは、他の誰かがこの問題に遭遇した場合に備えて、私は自分の質問に答えると思いました。さらにテストしたところ、エラーが発生したのはデータではなくファイルであることがわかりましたシークバーコンポーネントが機能するには、flv からのメタデータが必要です

実行することにより、アップロード時にファイルを flv に変換するために ffmpeg を使用しています。

これでは不十分でした。使用する必要があったのは、flvtool2 と呼ばれるものでした。

それに応じてコマンドを次のように変更しました: exec('/usr/local/bin/ffmpeg -i '.$uploadFile.' -f flv - | flvtool2 -U stdin '.$new_flv.'');

「 - | flvtool2 -U stdin 」に注意してください。これでこれまでのところ問題が解決しました

奇妙なことに、最初は元のコマンドが機能していました。

これが他の人に役立つことを願っています

JornCに再び感謝します

于 2011-03-15T15:07:17.847 に答える