red5-recorder ( http://www.red5-recorder.com/ ) をダウンロードしましたが、録音を開始できません。デバッグ後、メディア サーバーに記録するために必要な作成された netconnection が NetStatusEvent イベントを発生させないことがわかりました。そのため、基本的にサイレントに失敗します。次の最小限の作業例で接続を実装しました。
trace("make net connection");
nc = new NetConnection();
nc.client = { onBWDone: function():void{ trace("bandwidth check done.") } };
trace("add event listener");
nc.addEventListener(NetStatusEvent.NET_STATUS, function(event:NetStatusEvent) {
trace("handle");
});
trace("connect!");
nc.connect("rtmp://localshost/oflaDemo/test/");
trace("connect done");
このコードの出力は次のとおりです。
make net connection
add event listener
connect!
connect done
actionscript api は、connect-call が常にそのようなイベントを発生させることを示しています。
さらに、netconnection は呼び出しの 10 秒後に「接続」されていません (NetConnection オブジェクトの状態)。私もこれを見ました: NetConnect は、SilverLight から呼び出されたときに Flash でサイレントに失敗します しかし、著者が提案した、接続 uri で rtmp と http を交換する修正は機能しません。また、私は uri をテストし、実際に個人的なプロジェクトでまったく同じコード スニペットをテストしましたが、そこでは機能しました。red5-recorder プロジェクトで、メディア サーバーへの接続がサイレント モードで失敗する理由がわかりません。
厄介な部分は、接続 uri としてランダムな文字列を渡しても、何も起こらないことです (イベントも例外もクラッシュもありません)。また、私の経験では例外を引き起こした nc.client becore nc.connect() を設定しなくても、例外は発生しませんでした。
どんな提案でも大歓迎です。