0

たぶん、私が試していることは不可能であるか、意味がありませんが、要件です。

物事は簡単です。

私はビデオプレーヤーを書くためにOSMFを使用しました。MediaPlayerSpriteを作成し、そのリソースをURLResourceで設定すると、すべて正常に機能します。サポートされているhttpまたはrtmpストリーミングビデオ(flv、mp4、mpegなど)を再生できます。

しかし今、私はそのメソッドのいくつかを使用するためにNetStreamクラスを使用する必要があります。

NetStreamクラスを使用したのは、フラッシュVideoオブジェクトを使用してビデオをストリーミングするためでしたが、代わりにOSMFで使用したいと思います。

だから私の質問は、MediaPlayerSprite(およびすべてのOSMF機能)を使用することは可能ですが、MediaPlayerSpriteオブジェクトで再生されるビデオを制御するためにNetStreamメソッド(特にattachNetStreamなど)を使用する機能もありますか?

はい、それだけです...ビデオの処理にはMediaPlayerSpriteでattachNetStreamを使用してください。

なんで?Flash Videoオブジェクトで動作するクライアントによって提供されるNetStreamのサブクラスを使用していますが、もちろんMediaPlayerSpriteでは動作しません。クライアントのクラスメソッドのいずれかを使用すると、明らかにクラッシュします。

では、どうやってそれを達成するのでしょうか?クラスを拡張しますか?OSMFビルドを変更しますか?

よろしくお願いします。

4

1 に答える 1

2

ついに動作しました。誰かが同じことをする必要がある場合に備えて、私は回答を投稿します。

ビデオのロードにはMediaPlayerまたはMediaPlayerSpriteを使用すると仮定します。そのため、ステージでビデオオブジェクトを作成し、VideoElementロードデータを使用します。

var mps:MediaPlayerSprite = new MediaPlayerSrpite();
var resource:URLResource = new URLResource("http://example.com");
mps.media = new VideoElement(resource, new NetLoader());

ただし、OSMF fwkでカスタムNetStreamとNetConnectionを使用するには、NetLoaderクラスのcreateNetStreamメソッドとNetConnectionFactoryBaseのcreateメソッドを明らかにオーバーライドする必要があります。

  • NetConnectionFactoryBaseは、NetConnectionオブジェクトを作成し、それをparamとしてcreateNetStreamに渡します。
  • NetLoaderは、NetStreamオブジェクトを作成してプレーヤーに返します。

次に、MediaPlayerのイベントまたはメソッドを使用して、次のように再生を制御できます。

mps.mediaPlayer.play();
于 2012-11-29T10:10:00.363 に答える