我从Eclipse迁移到AndroidStudio; 我可以从我使用AndroidStudio / libpd构建的项目中获取声音,但不能使用麦克风将声音输入到Pd中。
这就是我设置音频参数的方法:
private void initPd() throws IOException {
AudioParameters.init(this);
int srate = Math.max(44100, AudioParameters.suggestSampleRate());
PdAudio.initAudio(srate, 1, 2, 8, true);
这是我在AndroidManifest.xml中设置权限的方式
<uses-permission android:name="android.permission.RECORD_AUDIO" />
这是我遇到的错误
AudioFlinger could not create record track, status: -1
E/libOpenSLES﹕ android_audioRecorder_realize(0x62839188) error creating AudioRecord object
答案 0 :(得分:1)
我有一个类似的问题,虽然我知道这个问题很老,但它可能有助于其他人寻找解决方案。 在libpd github页面上的贡献者的帮助下,我找到了在我的项目中没有输入的原因......
首先,我的targetsdkversion是API 23.正如所指出的那样: &#34;在API 23+中请求权限需要在应用程序本身中完成,而不是在pd-for-android库中完成。&#34; 所以我将目标sdk版本更改为22。
此外,我没有添加我的清单的权限以使用麦克风。所以将这一行添加到Androidmanifest:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
最后,我忘了在将源码从osc~更改为adc~时,将输入通道的数量从0改为。所以我的initPD方法现在看起来像:
int sampleRate = AudioParameters.suggestSampleRate();
int inpch = AudioParameters.suggestInputChannels();
PdAudio.initAudio(sampleRate, inpch, 2, 8, true);
这对我有用了.. 希望它可以帮助你或其他人。