質問

MediarecOrderまたはAudiorecordを使用して、複数のチャンネルを同時に記録できますか?私が欲しいのは、mediarecorder.audiosource.voice_uplinkとsoon_downlinkの両方を同時に録音できることです。 2つのチャネルを持つ2つの別々のファイルまたは同じファイルに入ることができます。私は2つの別々のMediaRecorderのインスタンスを使ってみました。しかし最初の1つのレコードだけです。 2番目のものは入力が利用できないと言います。私はまた、1つのメディアレコーダーと1つのaudiorecordを同時に使いようとしました。繰り返しになりますが、個別に機能しますが、MediaRecorderが開始された後にAudiorecordが来ると、次のエラーが表示されます。

05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1
05-21 03:40:42.735: E/AudioRecord-JNI(1322): Error creating AudioRecord instance:     initialization check failed.
05-21 03:40:42.825: E/AudioRecord-Java(1322): [ android.media.AudioRecord ] Error code -20     when initializing native AudioRecord object.
.

私はまた、2番目のメディアレコーダーを新しいスレッドに置ころうとしました。また同じ結果。だからこれはまったく同時に記録することが可能であるかどうか不思議になります。また、2つのチャンネルで1つのAudiorecordを使用できると考えていましたが、Voice_UplinkとVoice_DownLinkから2つの別々の入力を設定しますが、それがまったく可能であれば、ソースを設定する方法はわかりません。

事前感あり

編集:

Luciferの回答は、Audiorecordを複数のインスタンスを同時に実行することを非同期的に呼び出すことはできません。誰もがAudiosource.voice_uplinkとAudiosource.voice_DownLinkを同時に記録できる方法を知っていますか?複数のチャンネルでAudiorecordの単一のインスタンスを使用することはできますか?

役に立ちましたか?

解決

私の知る限りでは、audorecordingは同期した方法です。だからあなたは同時に2つの録音を使用することはできません。

あなたのコードが2番目の録画プロセスのために行ったとき、純粋に記録チャネルが最初の1つによって既にビジーであることを意味するエラー05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1を表示しています。

しかしこれは、最初のスレッドが特定の時間のために記録されるような方法で2つのスレッドの並列処理によって可能です。制御が2秒間のスレッドを通過すると、最初のスレッドは記録を停止し、2番目の1つの録音を停止し、その逆も同様です。しかし、モバイル機器に従って、これはより複雑になるでしょう。それでは、一度に1つのチャンネルを記録しました。

録音待ち行列を作成することができます。これは1つずつ録音します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top