私の問題は簡単に説明できます。AudioRecordオブジェクトを作成しようとしていますが、初期化に失敗します(つまり、コンストラクターの後、getStateは0を返し、失敗を示します)。私はこれをEclipseからOS2.2.1を実行しているMotoDroid1で実行しています。私のAndroidManifest.xmlは、AFAIKであり、適切な権限RECORD_AUDIOを使用しています(これを確認する方法がわかりません)。
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<activity android:name=".SphinxMic"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
AudioRecordを作成するには、次のようにします。
bufferSize = AudioRecord.getMinBufferSize(8000, CHANNEL_IN_MONO, ENCODING_PCM_8BIT);
audioRecorder = new AudioRecord(AudioSource.MIC, 8000, CHANNEL_IN_MONO, ENCODING_PCM_8BIT, 50*bufferSize);
if (audioRecorder.getState() != AudioRecord.STATE_INITIALIZED)
throw new Exception("AudioRecord init failed");
audioRecorder.getState()は0を返します(つまり、STATE_UNINITIALIZED)
このAPIを使用した完全な例は見つかりませんでした。私は、Androidの初心者なので、解決策は単純なものかもしれません。なぜ失敗するのかを知るために何ができますか?
何人かの人々が同様の質問をしましたが、彼らが承認した修正が私を助けていないので、彼らは私とは異なる問題を抱えていたに違いありません。最も注目すべきはこれです。しかし、承認された解決策は当惑していて、とにかく私にはうまくいきませんでした。また、モノラルとステレオの両方、および8ビットと16ビットのさまざまなビットレート(8000、16000、11025、44100)を試しました。初期化に成功したため、組み合わせは返されません。