0

我从 Eclipse 迁移到 AndroidStudio;我可以从我用 AndroidStudio/libpd 构建的项目中获取声音,但不能使用 mic 将声音输入 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
4

1 回答 1

1

我有一个类似的问题,虽然我知道这个问题很老,但它可能会帮助其他人寻找解决方案。在 libpd github 页面上的贡献者的帮助下,我找到了在我的项目中没有收到任何输入的原因......

首先,我的targetsdkversion是API 23。正如所指出的:“在API 23+中请求权限是需要在应用程序本身中完成的,而不是在pd-for-android库中。” 所以我将目标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);

这对我有用..希望它可以帮助你或其他人。

于 2016-07-17T16:58:12.787 回答