NetStreamオブジェクトを使って録音音を再生する悩み…

1923 ワード

ああ
また1つの難解な問題に出会って、多くのテストをしても原因が見つからない......憂鬱な中.
マイクロフォンからの音声をストリーミングオブジェクトで録音するFlashComプログラムをローカルでテストし、NetConnection Debuggerパネルを介してアプリケーションとの接続が確保されていることを検知し、音声を録音するコマンドも実行され、対応するStreamsフォルダの中でflvファイルが確実に生成されているが、なぜかNetStreamのプレイ方法でデフォルトで再生されると、録画したばかりの音声が再生されることがある.时にはできないこともありますが、できないことが多いのですが、一度再生できるようになったら、今のswfファイルを閉じない前提で、繰り返し録画してすべて正常ですが、よくは、swfファイルを消してから開けて、録画した音を再生できなくなります.まさか私のマイクが感度が足りない原因ですか?それともFlashComはマイクの品質に特別な要求がありますか?マイクのハードウェア品質と関係があるのではないかと疑っていますが、環境変数が設定されていないためかどうか分かりません.プログラムに脆弱性があるのか?思いつかない.フラッシュ友は似たような状況に遭遇しましたか?
私がテストに使用したファイルは簡単に書かれています.メインシーンにはPushButtonボタンコンポーネントで生成されたインスタンス(名前:recan_btn)が1つしかありません.デフォルトのLabelは:Record Soundで、イベント処理はdorecord関数を呼び出すことです.メインシーンの最初のフレームには、次のプログラムが書かれています.
コード:


   

stop();
#include "NetDebug.as"
newmic_nc = new NetConnection();
//
newmic_nc.connect("rtmp:/usemicrophone/first");
newmic_ns = new NetStream(newmic_nc);
getmicro = Microphone.get();
getmicro.setSilenceLevel(0);
getmicro.onStatus = function(infomsg) {
if (infomsg.code.indexOf("Unmuted") != -1) {
trace(" ");
} else {
trace(" ");
}
};
function dorecord() {
if (record_btn.getLabel() == "Record Sound") {
newmic_ns.attachAudio(getmicro);
newmic_ns.publish("soundsection", "record");
record_btn.setLabel("Play Sound");
} else if (record_btn.getLabel() == "Play Sound") {
record_btn.setLabel("Record Sound");
newmic_ns.play("soundsection",0,-1,true);
}
}

皆さん、見てください.これはなぜですか.ありがとう!