簡體   English   中英

如何在Android中使用Audio MimeType錄制語音

[英]How to Record voice with Audio MimeType in Android

我想以純音頻格式錄制語音。 目前我正在使用此代碼

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”。 我需要的是任何音頻啞劇類型。

EDIT1正如Headuck建議,我改變了我的代碼

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
mFileName += "/abc.aac";
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

使用“ audio / x-hx-aac-adts” mime類型可以完美錄制音頻。 謝謝Headuck

但是我的問題是:

我正在使用Cloud端點將此文件上傳到Google雲端硬盤。 然后,當我打開文件時,它說“糟糕!。播放該文件時出現問題”。 我需要像“ MP3”文件一樣播放文件。

Google雲端硬盤是否支持“ ACC”格式? 如果沒有,請提出替代方案。
請幫忙。

如果只需要將mime類型更改為audio類型,則可以在記錄器的stop()release()之后嘗試以下操作stop()為清楚起見,省略了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);

                                    }
                                });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM