3

コンパイル時に (メタタグを使用して[Embed]) swf に埋め込まれたデータからビデオを再生することは可能ですか?

Flash CS3 などで提供されている「ビデオのインポート -> 埋め込み」機能は、多くの厳しい制限 (サウンドの同期の問題、最大フレーム数、およびその他の注意事項を含む) があるため、受け入れられません。

AIR アプリケーションで再生される flv ビデオ データを (他のアセットと共に) swf にバンドルできることに興味があります。

私はそれができるとは思わない。同意しない人はいますか?

4

5 に答える 5

7

ビデオがFLVである限り、答えは「はい」ですNetStream.appendBytes()。埋め込みを再生するために使用できますByteArray

public class Main extends MovieClip
{
    [Embed(source="sample.flv", mimeType="application/octet-stream")]
    private var SampleVideo:Class;

    public function Main():void 
    {
        var video:Video = new Video(320, 240);
        addChild(video);

        var netConnection:NetConnection = new NetConnection();
        netConnection.connect(null);
        var netStream:NetStream = new NetStream(netConnection);
        netStream.client = {};
        video.attachNetStream(netStream);

        var byteArray:ByteArray = new SampleVideo();
        netStream.play(null);
        netStream.appendBytes(byteArray);
    }
}
于 2012-03-27T09:47:45.710 に答える
2

Flash IDE を使用して、flv を swf ファイルにインポートすることができます。サウンドのようにムービークリップのタイムラインにドロップし、そのムービークリップをステージにドロップして再生することができます。Flash CS3 で、[ファイル] > [インポート] > [ビデオのインポート] を実行し、flv を選択します。ビデオを選択し、ウィザードの次の停止で「Embed .....」を選択します。これは、flvs を swfs に埋め込むことに関する Adob​​e Developer Center の記事へのリンクです。

私自身はそうしていませんが、読み込まれた swf のライブラリから flv にアクセスできる理由がわかりません。

参考までに: これは延期されたバグのようです。Adobe は現在、Embed メタ タグを使用した埋め込みを許可していないようです。この問題に関するフォーラムの投稿と、バグ トラッカーへのリンクがあります。

于 2008-10-13T21:41:29.493 に答える
1

Flash IDE を使用してビデオを SWF に埋め込むことは可能ですが、あまり良いオプションではありません。

「再生は単純な再生および停止コマンドに限定され、ビデオ フレームレートはホスト ムービーのフレームレートと一致する必要があります。これは、共通分母のダウンロード速度を最低にするためのオーサリングを必要とする重要な考慮事項です。」

「埋め込みビデオの最大の制限は、最大 16,000 フレームのムービーであり、オーディオ同期は約 2 分を超えると維持できません。」

これらの引用はこの記事からのものです。少し古いですが、私が知る限り、動画の埋め込みについての説明は今でも当てはまります。

于 2008-10-14T15:45:05.733 に答える
0

そうそう、Embedmeta タグを使用してバイナリ データを swf に埋め込むことができるようです。

[Embed(
    source="local_data_file.flv",
    mimeType="application/octet-stream") ]
private static var __FlvClass123:Class;
protected static var flvData:ByteArray = new __FlvClass123();

ByteArray から埋め込まれたビデオを再生できるかどうかは、この段階で何らかの形で答えることはできません...

于 2010-03-25T20:39:45.397 に答える
0

同じ問題が発生し、より「柔軟な」解決策を探しました。これらの日の動的埋め込みは完全に単純に機能するようです:

public function loadSWF(){

 var _assetLdr:Loader;
_assetLdr = new Loader();
_assetLdr.load(new URLRequest("1.swf"));
_assetLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, this.handleComplete);
addChild(_assetLdr); 
}


public function handleComplete(event:Event):void {

    trace("complete");
    var loaderInfo:LoaderInfo=event.target as LoaderInfo;
    var content:MovieClip = loaderInfo.loader.content as MovieClip;
    addChild(content);

}

注: 内のスクリーン オフセットを確認してくださいlibrary.swf。私の場合、それらはめちゃくちゃだったので、単に画面外に表示されました。(ThankGodForCoffee) 良い一日を!

于 2018-05-31T04:45:43.033 に答える