2
import fl.video.*;
var player:FLVPlayback = new FLVPlayback();
addChild(player);
player.skin = "someSkin.swf";
player.source = "http://someDomian/some.flv";

これがコードです。サーバーからいくつかのflvをロードして再生し、Flashでテストすると(ctrl + enterを押すだけ)、ビデオはビデオの約90%で停止し、COMPLETEイベントをディスパッチします。誰もが理由を知っていますか?もう一度試してください。ビデオが停止する時間は同じで、約90%です。検索して、プレーヤーのplayheadUpdateIntervalを変更したり、totalTimeを明示的に設定したり、bufferTimeを長く設定したりしました。これらのソリューションはすべて違いはありません。同じサーバーから別の映画を読み込もうとしましたが、同じ問題が発生しました。サーバーに何か問題がある可能性はありますか?

編集:私はswfを他の誰かに送信しましたが、ビデオは想定どおりに再生されます。それから別の男、そして同じ結果。だから、私の設定に何か問題があると思いますか?この奇妙な行動を引き起こす設定はありますか?しかし、ラップトップで試してみると、ビデオが予期せず停止します。なぜこれは私のものを除いてすべてのコンピュータで動作するように見えるのですか?

CLOSEの前:最終的に私の同僚は、奇妙な理由がこの問題の原因であることに気付きました。公開設定をFP10&10.1またはFP9に変更すると、期待どおりに機能します。FP10.2以降では、そのサーバー上のビデオには、エンディングを見つける才能がないようです。ビデオはH.264/AACですが、VP60 / MP3に変換すると、すべてのFPバージョンが機能します。コーデックの設定を変更できないため、公開設定を変更し、コーデックはそのままにしておきます。これには不満がありますが、これを見て幸運なことに、「アーリーコンプリート」が表示される理由をコーデックで知っている場合は、教えてください。

4

1 に答える 1

0

問題は.FLVファイルにある可能性があり、ビデオファイル(AVI、MOV、MP4、3GP、WMV)を.FLV形式にエンコードしているときに問題が発生し、フレームがスキップされることがあります。他の.FLVファイルでコードを試してみてください。それでうまくいく場合は、FLVファイルを再エンコードする必要があります。

ビデオ再生の進行状況を追跡して、ビデオ完了イベントのキャプチャを試すこともできます。

import fl.video.*;

var player:FLVPlayback = new FLVPlayback();
addChild(player);
player.skin = "someSkin.swf";
player.source = "http://someDomian/some.flv";

addEventListener(Event.ENTER_FRAME, enterFrameHandler);

function enterFrameHandler(event:Event):void {

    if(player.playheadPercentage>=99)
    {

      //On Video Playback Complete Actions here     
    }
}
于 2012-12-13T18:44:17.563 に答える