FlexやFlash(not in Air)でローカルのビデオを再生できるか?
結論としては、自分の調べでも複数の情報からも、やはり無理そうだという事がわかった。
Flex3系のAPIではVideoDisplayで再生するが、sourceにセットできるのはStringのみ。これはつまりURLやパスをセットせよということでByteArrayはセットできない。
また、VideoDisplayの基礎となっているVideoクラスも同様にURLやパスは受け付けてもByteArrayを受け付けてくれるような機能はない。
そしてとどめ。要するにローカルのビデオを再生するにはパスが必要なわけだが、FlexやFlashでローカルファイルを読み込む唯一の手段であるFileReferenceでは、ファイルのByteArrayや名前は取得できてもパスを取得できない。セキュリティーのためか。
結局、これではどうにもならない。
Flex4系のAPIではVideoPlayerという新しいコンポーネントがあり、sourceにセットできるのはObjectだ。StringではないのでByteArrayを受け付けるかも知れないと試したところ、再生できなかった。
ドキュメントをよく見ると、sourceにセットできるのはパスやURLとStreamingVideoSourceらしい。しかしこのStreamingVideoSourceにもByteArrayを受け付けてくれるような機能は無い。
結局、Flex4系でも撃沈。
どうにかならないかとネットで調べたが、やはり同様の理由で無理だという記述を見つけた。
「convert bytearray into an image and netstream limitation」
Airならファイルシステムにアクセスでき、パスを取得できるので問題無いが、FlexやFlashではByteArrayしか取得できないので無理のようだ。
Flex3系のAPIではVideoDisplayで再生するが、sourceにセットできるのはStringのみ。これはつまりURLやパスをセットせよということでByteArrayはセットできない。
また、VideoDisplayの基礎となっているVideoクラスも同様にURLやパスは受け付けてもByteArrayを受け付けてくれるような機能はない。
そしてとどめ。要するにローカルのビデオを再生するにはパスが必要なわけだが、FlexやFlashでローカルファイルを読み込む唯一の手段であるFileReferenceでは、ファイルのByteArrayや名前は取得できてもパスを取得できない。セキュリティーのためか。
結局、これではどうにもならない。
Flex4系のAPIではVideoPlayerという新しいコンポーネントがあり、sourceにセットできるのはObjectだ。StringではないのでByteArrayを受け付けるかも知れないと試したところ、再生できなかった。
ドキュメントをよく見ると、sourceにセットできるのはパスやURLとStreamingVideoSourceらしい。しかしこのStreamingVideoSourceにもByteArrayを受け付けてくれるような機能は無い。
結局、Flex4系でも撃沈。
どうにかならないかとネットで調べたが、やはり同様の理由で無理だという記述を見つけた。
「convert bytearray into an image and netstream limitation」
・・・What it means is that you cannot play ByteArray in AIR or Flex Application.・・・
Airならファイルシステムにアクセスでき、パスを取得できるので問題無いが、FlexやFlashではByteArrayしか取得できないので無理のようだ。
ノー。やっぱりFlexベースでは無理ですねぇorz。調査お疲れ様でした。
返信削除mp3はライブラリがありますが、AACオーディオは無理ということですね。こういうデキの悪さは寡占市場の弊害ですね。
返信削除