Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中使用音频MimeType录制语音_Android_Google Drive Api_Android Mediarecorder - Fatal编程技术网

如何在Android中使用音频MimeType录制语音

如何在Android中使用音频MimeType录制语音,android,google-drive-api,android-mediarecorder,Android,Google Drive Api,Android Mediarecorder,我想用纯音频格式录制语音。 目前我正在使用这个代码 public static void startRecording(String fileName) { mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG

我想用纯音频格式录制语音。 目前我正在使用这个代码

public static void startRecording(String fileName) {
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        String mFileName = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        mFileName += "/abc.mp3";
        mRecorder.setOutputFile(mFileName);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        try {
            mRecorder.prepare();
            mRecorder.start();
        } catch (IOException e) {
            Log.e(TAG, "prepare() failed");
        }
    }
这将文件显示为mp3,但内部文件内容mime类型为video/mp4。我需要的是任何音频mime类型

编辑1 根据Headuck的建议,我将代码更改为

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
mFileName += "/abc.aac";
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
使用audio/x-hx-aac-adts mime类型可以完美录制音频。谢谢你,海杜克

然而,我的问题是:

我正在使用云端点将此文件上载到Google Drive。然后,当我打开文件时,它会说Oops。。!播放此文件时出现问题。我需要将该文件作为MP3文件播放

谷歌硬盘是否支持ACC格式?。如果没有,请提出替代方案。
请提供帮助。

如果您只需要将mime类型更改为音频类型,您可以在停止并释放录音机后尝试以下操作。为清晰起见,请省略try catch块:

mRecorder.stop();
mRecorder.release();
// Set the mime type to audio
String[] paths = {mFileName};
String[] mimeTypes = {"audio/mp4"};
MediaScannerConnection.scanFile(getApplicationContext(),
                                paths,
                                mimeTypes,
                                new MediaScannerConnection.OnScanCompletedListener() {
                                    @Override
                                    public void onScanCompleted(String path, Uri uri) {
                                        System.out.println("SCAN COMPLETED: " + path);

                                    }
                                });

您是否查阅了有关setOutputFormat和的文档?谢谢您的回复。我看到了。但我不懂如何录制纯音频。如果您不想要MPEG4容器,请帮助AAC_ADTS是一种音频格式,但请参阅您是否尝试使用mFileName+/abc.mp4;取而代之的是?可能是