web-dev-qa-db-ja.com

Android:mp3形式でサウンドを録音

Androidアプリを構築しています。マイクを介してサウンドをキャプチャし、ヘッドフォンを介して再生する機能を備えています。このために、「AudioRecord」と「AudioTrack」を使用しました。以下のコードの一部は、私は使用しています(理解のためだけに)

mInBufferSize = AudioRecord.getMinBufferSize(mSampleRate,
            AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat);
mOutBufferSize = AudioTrack.getMinBufferSize(mSampleRate,
            AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat);
mAudioInput = new AudioRecord(MediaRecorder.AudioSource.MIC,
            mSampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat,
            mInBufferSize);
mAudioOutput = new AudioTrack(AudioManager.STREAM_MUSIC, mSampleRate,
            AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat,
            mOutBufferSize, AudioTrack.MODE_STREAM);

しかし、主な問題は、着信音をmp3形式で録音したいということですか?これで私を助けてください、私は本当に感謝します...

前もって感謝します

15
user609239

MediaRecorderを使用して.mp3ファイルを保存するための回避策があります。方法は次のとおりです。

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setOutputFile(Environment.getExternalStorageDirectory()
        .getAbsolutePath() + "/myrecording.mp3");
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.prepare();
recorder.start();

ここで重要な部分はsetOuputFormatsetAudioEncoderです。どうやらMediaRecorderは、MediaRecorder.OutputFormat.MPEG_4MediaRecorder.AudioEncoder.AACを一緒に使用している場合、再生可能なmp3を記録します。これが誰かを助けることを願っています。

もちろん、AudioRecorderクラスを使用したい場合は、以下にリンクされているソースコードChiragが問題なく機能するはずだと思います- https://github.com/yhirano/Mp3VoiceRecorderSampleForAndroid (ただし、翻訳が必要になる場合があります日本語から英語への一部)

編集:Brunoや他の数人がコメントで指摘したように、これはエンコードしません MP3のファイル。エンコードはAACのままです。ただし、サウンドを再生しようとすると、上記のコードで.mp3拡張子を使用して保存されますが、ほとんどのメディアプレーヤーは実際のエンコーディングを検出するのに十分スマートであるため、問題なく再生されます。

38
Advait S

ここでgitでMp3ボイスレコーダーサンプルのソースコードを見つけることができますAndroid。

チェックアウト このソースコード。

10
Chirag

レコーダーのoutputformatMediaRecorder.OutputFormat.DEFAULTに設定します。私はこれを使用し、結果のオーディオファイルはmp3です。

0
Akhil Soman

私はこれが古い質問であることを知っています。 Android Java full recording app demo)でリポジトリを作成した人に役立つ場合、出力ファイルはmp3ファイルです。覚えておいてください。ユーザーの権限をリクエストする必要がないようにするには、ターゲットSDKを21に設定します。これはデモの目的でのみ使用できます。クローンを作成して使用できます。

私が使用したコードのほとんどは、このリポジトリからのものです this

私のデモリポジトリ: mp3レコーディングアプリ

0
Eliran Azulay

これは私のために働いた

mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory()
    .getAbsolutePath() + "/record.mp3");
mediaRecorder.prepare();
mediaRecorder.start();
0
Sushant