【问题标题】:AAC format in AndroidAndroid 中的 AAC 格式
【发布时间】:2013-03-07 16:38:05
【问题描述】:

我在 android 上遇到音频问题。

小问题:

我需要在所有 Android 设备上播放和录制 aac 格式的音频。 我发现它可以从 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,但我没有使这个库工作的经验。

那你能推荐点什么吗?

【问题讨论】:

  • aac-decoder 是 aacplayer 的短版。它不会将aac文件播放到最后,也不会播放设备录制的声音。
  • 我找到了部分解决方案。 1. 在某些设备上未播放音频,因为我试图从文件 derectiory 播放它 - data/data/com.myapp.player/files/music.aac。 2. 在某些设备上它不工作,但 aacdecoder 可以播放文件到最后。只需将其设置为小缓冲区大小 AACPlayer aacPlayer = new MultiPlayer(clb, 200, 200);

标签: android aac


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多