2011-07-03 33 views
3

私のアプリケーションでは、マイクからの入力を録音しています。ある時点では、録音中に音が鳴っています。私は2台の電話機でテストしていオーディオを録音して同時にオーディオを再生する

07-03 18:40:34.811: INFO/AudioHardwareALSA(2179): Output standby called!!. Turn off PCM device. 

を、1がサムスンギャラクシーSである: 今レコーダーがレコードに「停止する」(mrec.stopは()まだ使用することができる)、このためLogCatエントリがあると思われます1つはSamsung Galaxy 3です。Galaxy Sでは、すべてが期待通りに機能します(録音はまだ行われています)。 仕様以外の2台の電話機の違いは、ギャラクシーSが2.2.1で、ギャラクシー3が2.2 であることです。これは、メディアコアをもう一度初期化することで回避できますが、これはアプリケーションスタッターを必要としません。ここで

は、より多くの情報がメディアプレーヤとmediarecorderが設定されている方法です。

void Init() 
    { 
     mp = MediaPlayer.create(getContext(), R.raw.pop); 
     mrec = new MediaRecorder(); 
     mrec.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mrec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     [..] 
     mrec.setOutputFile(audiofile.getAbsolutePath()); 
     mrec.prepare(); 
     mrec.start(); 
    } 

void Event() 
    { 
     mp.start(); 
    } 

なぜ記録 "停止"?停止を止める方法はありますか?これは望ましい動作ですか?何が間違っているのか分かりますか?

ご了承ください。

+0

解決方法はありますか?私は同じことをしたい! – QAMAR

+0

@Gerdあなたが見つかった場合でも私たちに解決策を提供してください。 –

答えて

1

ネイティブの基本的なプレーヤーとレコーダーを使用してみてください... AudioTrackクラスやオーディオフォーマットのような他の関連するAPIからアクセスできます。それらを使用すると、pcmオーディオデータをチャンクまたはバッファ(明示的バイト配列)で記録および再生し、ループを使用してバッファを任意のものに書き込むことができます。それでは、録音と再生を同時に行うことができます

幸運

関連する問題