Android中的AAC格式

时间:2013-03-07 16:38:06

标签: android aac

我在Android上遇到音频问题。

简短问题:

我需要以aac格式播放和录制所有Android设备的音频。 我发现可以从API 10开始,但在我的BLU设备(2.3.5)上,它可以使用MediaRecorderMediaPlayer。 但是在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,但我没有经验让这个库工作。

你能推荐什么吗?

1 个答案:

答案 0 :(得分:1)

我通过将音频类型更改为MP3来解决此问题,因为某些设备(如Kindle Fire)无法从任何地方播放aac。

我的建议是: 如果你想制作跨平台的声音 - 使用MP3。您可以使用lame encoder将任意声音转换为MP3。