5

Androidのオーディオに問題があります。

短い質問:

すべての Android デバイスでオーディオを aac 形式で再生および録音する必要があります。API 10 から開始できることがわかりましたが、私の BLU デバイス (2.3.5) では、 と を使用して動作しMediaRecorderますMediaPlayer。しかし、HTC Nexus One では機能しません。何か提案はありますか?

長い質問:

AAC 形式でオーディオを録音および再生するには、次のコードを使用しています。非常に単純でばかげていますが、テストには機能します。

String pathForAppFiles = getFilesDir()
                .getAbsolutePath();
        pathForAppFiles += "/bla.mp4";
        if (audioRecorder == null) {

            File file = new File(pathForAppFiles);
            if (file.exists())
                file.delete();

            audioRecorder = new MediaRecorder();

            audioRecorder
                    .setAudioSource(MediaRecorder.AudioSource.MIC);

            audioRecorder
                    .setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

            audioRecorder
                    .setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

            audioRecorder.setOutputFile(pathForAppFiles);

            try {
                audioRecorder.prepare();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            audioRecorder.start();

        } else {
            audioRecorder.stop();
            audioRecorder.release();
            audioRecorder = null;

            new AudioUtils().playSound(pathForAppFiles);
        }

new AudioUtils().playSound(pathForAppFiles);- MediaPlayer を作成し、ファイルからサウンドを再生します。

nexusで動作させるために、aac-decoderを試しました-ファイルを最後まで再生しません(10秒のファイルのうち6秒しか再生しません)。また、上記のコードで録音されたサウンドは再生されません。

また、FFmpeg をインストールしようとしましたが、このライブラリを機能させる経験がありません。

それで、何かお勧めできますか?

4

1 に答える 1

1

一部のデバイス (Kindle Fire など) はどこからでも aac を再生しないため、オーディオ タイプを MP3 に変更することでこの問題を解決します。

私の推奨事項は次のとおりです。クロスプラットフォームのサウンドを作成したい場合は、MP3 を使用してください。ラメ エンコーダーを使用すると、任意のサウンドを MP3 に変換できます。

于 2013-04-19T12:41:45.970 に答える