2

アプリケーションとオーディオレコードMediaRecorderで同時に使用する必要があります。1つはスクリプトを登録し、もう1つは入力信号の振幅で入力されたサウンドを表示するためのものです。同時に使用するとアプリケーションがクラッシュしますが、独立して使用すると正常に動作します。それで、私が同時に使用できる解決策はありますか?

Trace logCat :
10-16 22:02:08.675: E/MediaRecorder(9007): start failed: -1
10-16 22:02:08.675: W/System.err(9007): java.lang.RuntimeException: start failed.
10-16 22:02:08.675: W/System.err(9007):     at android.media.MediaRecorder.start(Native Method)
10-16 22:02:08.675: W/System.err(9007):     at com.ax.audio_recorder.viewlvlmicro.SoundMeter.start(SoundMeter.java:40)
10-16 22:02:08.675: W/System.err(9007):     at com.ax.audio_record.MainActivity.start(MainActivity.java:177)
10-16 22:02:08.675: W/System.err(9007):     at com.ax.audio_record.MainActivity.access$0(MainActivity.java:173)
10-16 22:02:08.680: W/System.err(9007):     at com.ax.audio_record.MainActivity$3.onClick(MainActivity.java:154)
10-16 22:02:08.680: W/System.err(9007):     at android.view.View.performClick(View.java:2538)
10-16 22:02:08.680: W/System.err(9007):     at android.view.View$PerformClick.run(View.java:9152)
10-16 22:02:08.680: W/System.err(9007):     at android.os.Handler.handleCallback(Handler.java:587)
10-16 22:02:08.680: W/System.err(9007):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-16 22:02:08.680: W/System.err(9007):     at android.os.Looper.loop(Looper.java:130)
10-16 22:02:08.680: W/System.err(9007):     at android.app.ActivityThread.main(ActivityThread.java:3691)
10-16 22:02:08.680: W/System.err(9007):     at java.lang.reflect.Method.invokeNative(Native Method)
10-16 22:02:08.680: W/System.err(9007):     at java.lang.reflect.Method.invoke(Method.java:507)
10-16 22:02:08.680: W/System.err(9007):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
10-16 22:02:08.680: W/System.err(9007):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
10-16 22:02:08.680: W/System.err(9007):     at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

4

Androidデバイスが基づいている多くのプラットフォームでは、開いているオーディオ入力ストリームの数が1に制限されているため、最初のストリームを閉じる前に別のストリームを作成しようとすると例外が発生します。

生のPCMをAudioRecordで記録し、そのデータをファイルへの書き込み(「スクリプトの登録」の意味である場合)とビジュアライザーの入力の両方に使用できます。欠点は、圧縮されたオーディオ(mp3など)を保存する場合は、アプリでエンコードを自分で処理する必要があることです。

于 2012-10-17T13:21:48.120 に答える