1

AS3では、SWFが誰かのカメラをうまくつかみ、ビデオのストリーミングを開始したが、途中で誤ってカメラをUSBポートから小刻みに動かしたり、カメラが故障したりした場合などです。そうでなければ、そのユーザー側からどのようにそれを検出できますか?イベントリスナーを使用し、5秒ごとにさまざまな変数をポーリングしようとしましたが、どちらも機能しませんでした。そのようなことが起こったとき、カメラの公共の財産やそのイベントはまったくおかしな行動をとらないようです。そして、どうやらあなたは単にデバイスのためにコンピュータをスキャンし続けることはできません(正当な理由で、私は推測します)。

ここに欠けているものはありますか?ユーザーのSWF(FPまたはAIR、さらに重要なのはFP)のコピーから、誤ってコンピューターからカメラを小刻みに動かしたなどの問題の結果としてカメラが効果的に停止したことを検出する方法はありますか?もしそうなら、どのように?ありがとう!

4

3 に答える 3

1

オンデマンドで発信できる適切な「カメラステータスの取得」呼び出しを思い出せませんが、ステータスイベントをリッスンしてみて、切断時に起動されることを期待できます。

まだ行っていない場合は、5秒間チェックしてみif(myCameraObject == null)てください。var myCameraObject = Camera.GetCamera();

より良い解決策が見つからない場合は、カメラフィードの後ろに[カメラを検出]ボタンを配置することを検討してください。カメラが切断された場合、ユーザーにはボタンが表示され、クリックして再接続できます。

于 2012-12-13T20:32:32.750 に答える
1

カメラ/マイクが機能しなくなったり、非アクティブ化されたりしたことを検出するのは難しいかもしれませんが、ビデオ/オーディオをサーバーに公開している場合は、問題が発生していることがわかりますNetStream

には、オブジェクトでNetStreamあるinfoプロパティがありNetStreamInfoます。これにより、現在の合計バイト数と、サーバーに送信されているデータのバイト/秒の速度の両方が得られNetStreamます。

累計を使用する場合は、定期的にチェックしてbyteCount、自分のレートを計算する必要があります。または、Flash Playerにすべての作業を任せて、計算しているレートを使用することもできます。録音の場合、これらの値はNetStream、カメラ/マイクから受信している(そしてサーバーに送信する)データの量を示します。

速度が5キロビット/秒を下回ったときに問題が発生したことをクライアントで確実に判断できることがわかりました。FMSサーバー(カスタムサーバー側のActionscriptを使用)でも同じしきい値と同様の計算を使用しました。

于 2012-12-27T08:54:34.660 に答える
0

@ToddBFisherによって提案されているように、カメラオブジェクトがnullであるかどうかを確認したり、Camera.names.length> 0またはカメラインスタンスの他のいくつかのプロパティを確認したりできます(以下のリンクを参照)。しかし、それらのそれぞれで、定期的にチェックする必要があります。

カメラでの作業

カメラステータスの監視

于 2014-09-27T04:38:07.153 に答える