Android音频捕获

Android音频捕获,android,audio,media,audio-recording,Android,Audio,Media,Audio Recording,我在下面的文章中捕捉Android上的音频。我以为这很容易,但有个问题。代码如下: File dir = activity.getDir("recordings", Context.MODE_PRIVATE); File file = new File(dir, "testaudio.mpeg4"); FileUtil fileUtil = new FileUtil(); File parent = file.getParentFile(); if(!

我在下面的文章中捕捉Android上的音频。我以为这很容易,但有个问题。代码如下:

    File dir = activity.getDir("recordings", Context.MODE_PRIVATE);
    File file = new File(dir, "testaudio.mpeg4");

    FileUtil fileUtil = new FileUtil();
    File parent = file.getParentFile();

    if(!parent.exists()){
        Log.i(TAG, "Creating non-existent path:" + parent.getAbsolutePath());
        parent.mkdirs();
    } 

    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

        try{
            recorder.setOutputFile(file.getAbsolutePath());
            recorder.prepare();
            recorder.start();
        }catch(IOException e){
        //more code
        }
因此,它确实在/data/data/com.myapp/app_recordings/文件夹下创建了testaudio.mpeg4文件。但是,在将文件传输到Mac(使用adb pull)之后,它就不能播放了。我在Mac电脑上,我尝试过几种音频格式(如MP3、MPEG、3GP等),但似乎都不起作用。任何帮助/指导都将不胜感激。

请使用此功能

File dir = new File(Environment
            .getExternalStorageDirectory().getAbsolutePath() + "/recording/");

这似乎是Mac的问题,代码或设备没有问题。我可以听到设备上的音频。

但是,我不想写入外部存储器。activity.getDir(“recordings”,Context.MODE_PRIVATE)允许我私下向应用程序写入内容。