3

私はローカルアプリケーションに取り組んでいます(これはウェブサイトでも関係のないものでもありません)。現在、非常に単純な暗号化方法を使用したさまざまな FLV があります(各バイトに 10 を追加するようなものです)。

復号化後に NetStream.appendBytes() を使用してそれらをロード/再生できますが、それはストリーミングされていないすべてのビデオデータを読み取った後にのみ発生します。

私が本当に必要としているのは、これらのビデオをリモート URL からストリーミングし、データを受信しながら復号化し、既に構築した OSMF ベースのプレーヤーを使用することです。OSMF が FLV をどのように処理するかがわかりません。それ以外の場合は、プラグインなどを作成しようとします。誰かがそれに対処する方法を教えてくれたら、とても感謝しています。

しかし、URL の代わりに ByteArray 値を渡して、OSMF を使用してローカル ファイルをロードする方法を誰かが見つけるのを手伝ってくれたら幸いです (下記)。または、私の問題を解決するために OSMF プラグインを作成する方法を教えてくれます。

videoElement.resource = "video_url/video.flv";

これは、デコードされた FLV バイト配列を再生するためだけの現在のコードです

private function playBytes(bytes:ByteArray):void 
{
            // detecting it's header
            if (bytes.readUTFBytes(3) != "FLV")
            {
                _text.appendText("\nFile \""+ file +"\" is not a FLV")
                return void;
            }

            bytes.position = 0;
            netConnection.connect(null);
            netStream = new NetStream(netConnection);
            netStream.client = { onMetaData:function(obj:Object):void { } }
            video.attachNetStream(netStream);

            addChild(video); 


            // put the NetStream class into Data Generation mode
            netStream.play(null);
            // before appending new bytes, reset the position to the beginning
            netStream.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
            // append the FLV video bytes
            netStream.appendBytes(bytes);
}
4

1 に答える 1

1

興味深い投稿です。答えを知りたいです。ストリームではありませんが、自分自身に似たものを見て、次のことに気づきました。

http://ntt.cc/2008/07/15/bitsreader-read-bits-from-given-bytearray.html

バイト配列を渡した後、10 ビット配列の bits.read(8) を使用できます。おそらく、これは正しい道をあなたに送るでしょうか?それ以外の場合は、バッファリングされたすべてのデータを連結するために、それをバラバラにして、本質的に小さなセクションをバッファリングする必要があると思います...

ちょっとした考え、

于 2011-10-20T17:48:09.863 に答える