Java 无法获取简单麦克风应用程序的音频输入

Java 无法获取简单麦克风应用程序的音频输入,java,android,android-audiorecord,puredata,libpd,Java,Android,Android Audiorecord,Puredata,Libpd,我正在学习将libpd与Android结合使用,遇到了一个问题。我想看看我是否能让一个简单的麦克风应用程序工作。只需一个~adc->bpfilter->*2->~dac。我验证了补丁可以使用纯数据和MobMuPlat 我编写了示例程序“Circle of Fifths”,以确保正确地包含libpd。当我使用教程修改它来运行我自己的补丁时,我无法从手机的麦克风获取输入。下面这句话似乎就是问题所在 PdAudio.initAudio(sampleRate, inpch, 2, 8, true);

我正在学习将libpd与Android结合使用,遇到了一个问题。我想看看我是否能让一个简单的麦克风应用程序工作。只需一个~adc->bpfilter->*2->~dac。我验证了补丁可以使用纯数据和MobMuPlat

我编写了示例程序“Circle of Fifths”,以确保正确地包含libpd。当我使用教程修改它来运行我自己的补丁时,我无法从手机的麦克风获取输入。下面这句话似乎就是问题所在

PdAudio.initAudio(sampleRate, inpch, 2, 8, true);    
如果我将输入通道设置为0,应用程序将打开,但显然不会发出声音。除非我将补丁更改为仅播放音调并将inpch设置为0。将输入通道设置为1,2或
AudioParameters.suggestInputChannels()时应用程序将不会打开

我也尝试过小样本率,但我有同样的问题。有什么想法吗

以下是完整的主要活动:

/**
 * 
 * @author Peter Brinkmann (peter.brinkmann@gmail.com)
 * 
 * For information on usage and redistribution, and for a DISCLAIMER OF ALL
 * WARRANTIES, see the file, "LICENSE.txt," in this distribution.
 * 
 */

package org.puredata.android.fifths;

import java.io.File;
import java.io.IOException;

import org.puredata.android.io.AudioParameters;
import org.puredata.android.io.PdAudio;
import org.puredata.android.utils.PdUiDispatcher;
import org.puredata.core.PdBase;
import org.puredata.core.utils.IoUtils;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioGroup;
import android.widget.Toast;

public class CircleOfFifths extends Activity {

    private static final String TAG = "GuitarTuner";
    private PdUiDispatcher dispatcher;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initGui();
        try {
            initPd();
            loadPatch();
        } catch (IOException e) {
            Log.e(TAG, e.toString());
            finish();
        }
    }

    private void initGui() {
        setContentView(R.layout.main);
    }

    private void initPd() throws IOException {
        // Configure the audio glue
        // int sampleRate = AudioParameters.suggestSampleRate();
        int sampleRate = 64;

        int inpch = AudioParameters.suggestInputChannels();
        PdAudio.initAudio(sampleRate, inpch, 2, 8, true);
        // Create and install the dispatcher dispatcher = new PdUiDispatcher();
        // PdBase.setReceiver(dispatcher);
    }

    private void loadPatch() throws IOException {
        File dir = getFilesDir();
        IoUtils.extractZipResource(getResources().openRawResource(R.raw.patch),
                dir, true);
        File patchFile = new File(dir, "microphone.pd");
        PdBase.openPatch(patchFile.getAbsolutePath());
        PdAudio.startAudio(this);

    }

    @Override
    protected void onResume() {
        super.onResume();
        PdAudio.startAudio(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        PdAudio.stopAudio();
    }
}

您需要录制音频的权限。尝试添加

<uses-permission android:name="android.permission.RECORD_AUDIO" />


您需要获得录制音频的权限。尝试添加

<uses-permission android:name="android.permission.RECORD_AUDIO" />


您需要获得录制音频的权限。尝试添加

<uses-permission android:name="android.permission.RECORD_AUDIO" />


您需要获得录制音频的权限。尝试添加

<uses-permission android:name="android.permission.RECORD_AUDIO" />


感谢您的舱单。

非常感谢,这就是问题所在。我还需要将采样率改回原来的水平。非常感谢,这就是问题所在。我还需要将采样率改回原来的水平。非常感谢,这就是问题所在。我还需要将采样率改回原来的水平。非常感谢,这就是问题所在。我还需要将采样率改回原来的水平。