PHPでFLVストリーミング,その2,成功したよパパン!の巻き
FLVのファイルフォーマット - Paradigm Shift Design及び
PHPでFLVストリーミング,その1 - Paradigm Shift Designの続き.
結局,FLVのファイルフォーマット仕様書を読んで,ちゃんとメタデータを出力するようにしたところ,ちゃんと再生された.
PHPでFLVをストリーミングするためのスクリプト(get.php)
うーん!長かった.
ただし,まだ再生開始位置や,ファイルサイズについては実装が適当なので,そのうちちゃんとタグを読んで,再生開始位置を決定するようにしたいと思います.
startとendも決められるといいな.
しかし,コードが冗長になってしまった・・・
一応使い方.
- PHP5の入ったサーバーの適当なディレクトリに,上記get.phpを作成する.
- そのディレクトリ内に,flvファイルを置く
- http://server.com/path/to/get.php?file=ファイル名&position=適当な数字でアクセスする
- なんか動いてそうなら問題なし.
Flex側で,
RadioApplication.as
package radio{ import flash.net.NetConnection; import flash.net.NetStream; import flash.media.Sound; import flash.media.Video; import mx.core.Application; import flash.events.MouseEvent; import flash.system.Security; import flash.media.SoundTransform; import flash.events.StatusEvent; import flash.events.NetStatusEvent; public class RadioApplication{ protected var nc:NetConnection = new NetConnection(); protected var stream:RadioNetStream; protected var video:Video; public function RadioApplication():void{ flash.system.Security.allowDomain("*"); this.nc.connect(null); this.stream = new RadioNetStream(this.nc); this.stream.play("http://server.com/path/to/get.php?file=0001.flv&position=1000"); } } }
RadioNetStream.as
package radio { import flash.net.NetStream; import flash.net.NetConnection; public class RadioNetStream extends NetStream { public function RadioNetStream(nc:NetConnection){ super(nc); } public function onMetaData(infoObject:Object):void { for (var propName:String in infoObject) { trace(propName + " = " + infoObject[propName]); } } public function onCuePoint(infoObject:Object):void { trace("cue point"); } } }
radio.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initApp();" xmlns:media="flash.media.*"> <mx:Script> <![CDATA[ import radio.RadioApplication; protected var application:RadioApplication; private function initApp(): void{ this.application = new RadioApplication(); } ]]> </mx:Script> </mx:Application>
のようなアプリケーションを作って実行してみて,音が鳴れば問題なく稼動しているということです.
- PHPでFLVストリーミング,その1 - Paradigm Shift Design
- PHPでFLVストリーミング,その2,成功したよパパン!の巻き - Paradigm Shift Design
- PHPでFLVストリーミング,その3 - Paradigm Shift Design
- FLVのファイルフォーマット - Paradigm Shift Design
- PHPでストリーミング,その4 - Paradigm Shift Design
- User Documentation for Flash Streaming via PHP, FlvStreamProvider - Paradigm Shift Design