FMSを使って録画するときのはまりポイント
Flash Media Serverを使って録画するときのお話です。3系での話。それ以外は知らない。
はまりがちなコード
マニュアル片手にやっていると次のようにコーディングしがち。関数のローカル変数になっていることがポイント。
Client.prototype.startRecord = function(path) { var stream = Stream.get(path); stream.play("livestream"); stream.record(); }
こう書くと、数分後・数秒後にGCに回収されて録画が勝手にストップします。onStatusのコールバックも呼ばれません。中途半端に動く分、はまる。全く動かないなら気がつくけど…
はまらないコード
applicationなどのプロパティに指定しましょう。思い通りに動きます。
application.recordStreams = {}; Client.prototype.startRecord = function(path) { var stream = application.recordStreams[path] = Stream.get(path); stream.play("livestream"); stream.record(); }
あと録画が終わったらapplication.recordStreamsの対象のStreamを削除しておきましょう。
あと…
- NetConnection
- NetStream
なども、同じことではまる。as3でもはまる。