当前位置: 首页 > 知识库问答 >
问题:

Android中的AAC格式

单于智
2023-03-14

我在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()。播放声音(PathForApp文件) -创建MediaPlayer并从文件中播放声音;

为了让它在nexus上工作,我尝试了aac解码器——它不会播放文件到最后(只播放10秒文件中的6秒)。而且它不会播放上面代码记录的声音。

我也试图安装FFmpeg,但我没有经验使这个库工作。

你能推荐点什么吗?


共有1个答案

刘兴修
2023-03-14

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

我的建议是:如果你想发出跨平台的声音——使用MP3。你可以用lame编码器将任何声音转换成MP3。

 类似资料:
  • 我想修剪现有的aac-mp4音频文件。我第一次想“修剪”0个字节,基本上就是使用MediaCodec/MediaExtractor复制文件。 问题: 标题是固定大小的,我可以从旧文件中复制它?或者它有一些关于音轨持续时间的信息,我需要更新它?如果它有固定大小,那是什么(为了知道我应该从旧文件中复制多少字节)? 我应该只使用提取器的getSampleData(ByteBuffer,偏移量)和进步()

  • 本文向大家介绍使用ffmpeg 合并aac格式音频文件的方法,包括了使用ffmpeg 合并aac格式音频文件的方法的使用技巧和注意事项,需要的朋友参考一下 FFmpeg简介 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保

  • 可以将任意格式的音频文件转码压缩成 AAC MPEG-4(m4a)格式。可以应用在需要传输声音文件的app中,这样可以将数据量大的声音文件(比如PCM)压缩成较小的AAC再进行传输。 [Code4App.com]

  • 我正在尝试使用使用编解码器对一些音频流进行编码。为此,我使用了google cts ExtractEncodeMust的这个实现。 对于某些aac文件,它会在编码某些帧后抛出。更准确地说,它会在第1030行抛出异常,。 我正在配置如下: 我完全不知道如何解决这个问题。任何形式的帮助都将不胜感激。 带有一些日志的堆栈跟踪: 设备:小米POCO x3 操作系统:Android10 导致溢出的示例文件信

  • 我正在从麦克风录制音频并将其保存到. mp4-它是AMR格式。如何将此音频转换为mp3或AAC?我看到了这篇文章,但我不明白-我是Android新手。 是否有一些简单的android库可以与mp3一起使用?我在谷歌上搜索了一整天,什么也没找到。也许某个好人可以在这篇文章中解释并给出完整的例子,数百人会很感激的! 非常感谢。

  • 我正在尝试使用Android上的MediaCodec API来解码AAC流。(它是原始AAC。)我尝试使用MediaFormat.createAudioFormat()来创建要传递给MediaCodec.configure()的格式对象,但我在使用AAC(音频/mp4a-latm)时一直出错。(不过它适用于MP3(音频/mpeg)...) 最后,我为一个AAC文件创建了一个MediaExtract