Dav*_*ave 13 android microphone audiorecord android-audiorecord
我的问题很容易解释 - 我试图创建一个AudioRecord对象,但它无法初始化(即在构造函数之后,getState返回0,表示失败).我在运行OS 2.2.1的MotoDroid 1上从Eclipse运行它.我的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>
Run Code Online (Sandbox Code Playgroud)
我执行以下操作来创建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");
Run Code Online (Sandbox Code Playgroud)
audioRecorder.getState()返回0(即STATE_UNINITIALIZED)
我还没有找到任何使用这个API的完整示例,我非常喜欢Android初学者,所以解决方案可能很简单.我该怎么做才能找出失败的原因?
有些人提出了类似的问题,但他们肯定遇到了与我不同的问题,因为他们批准的修复措施对我没有帮助.最值得注意的是这个.但批准的解决方案令人困惑,无论如何都不适用于我.我还尝试了各种比特率(8000,16000,11025,44100),单声道和立体声以及8和16比特.成功初始化后没有组合回来.
Luk*_*eau 40
我花了几个小时来解决这个问题,并发现了移动
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Run Code Online (Sandbox Code Playgroud)
在应用程序块之外实际解决了它!
...
</application>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
</manifest>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21734 次 |
| 最近记录: |