当前位置: 首页 > 面试题库 >

如何从MP3获取音频数据?

左丘昊天
2023-03-14
问题内容

我正在开发一个必须处理音频文件的应用程序。使用mp3文件时,我不确定如何处理数据(我感兴趣的数据是音频字节,代表我们所听到的)。

如果我使用的是wav文件,我知道我有一个44字节的标头,然后是数据。关于mp3,我已经读到它们是由帧组成的,每个帧都包含标题和音频数据。是否可以从mp3文件中获取所有音频数据?

我正在使用Java(我已经添加了MP3SPI,Jlayer和Tritonus),并且能够从文件中获取字节,但是我不确定这些字节代表什么或如何处理。


问题答案:

从MP3SPI的文档中:

File file = new File(filename);
AudioInputStream in= AudioSystem.getAudioInputStream(file);
AudioInputStream din = null;
AudioFormat baseFormat = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 
                                            baseFormat.getSampleRate(),
                                            16,
                                            baseFormat.getChannels(),
                                            baseFormat.getChannels() * 2,
                                            baseFormat.getSampleRate(),
                                            false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);

然后,您只需从中读取数据din-便是按照的“原始”数据decodedFormat。(有关更多信息,请参阅文档AudioFormat。)

(请注意,此示例代码不会关闭流或类似的内容-照常使用适当的try / finally块。)



 类似资料:
  • 我的音乐应用程序从外部应用程序启动,使用意向数据作为音乐文件。 我有mp3音频URI,类似这样 file:///storage/emulated/0/Music/Tamil/I(2014)/Ennodu Nee Irundhaal。mp3 如何从媒体获取音频详细信息。标题,媒体。相册,媒体_身份证件

  • 问题内容: 我收到mp3网址作为api调用的响应。我想播放该音频,那么我该怎么做?(iOS迅速) 这是我的回应 这是我的代码:: 我要去哪里错了? 问题答案: 我尝试了以下方法 添加以下方法, 和您的播放方法一样, 下载mp3文件,然后尝试播放,但AVAudioPlayer无法以某种方式为您下载mp3文件。我可以下载音频文件,然后播放器播放它。 请记住,将其添加到info.plist中,因为您是从

  • 我使用函数将音频文件读入。 这是音频的和ASBD: 因此,我们获得并交织了2个声道的音频,每个声道的16位符号为int init: 并读入缓冲区: 是的和实例,它在前面的代码中启动,为了节省空间,我没有粘贴到这里。 我试图完成的是在渲染回调中修改音频样本。 是否有可能从音频数据的UInt32阵列中获得Sint16左右声道样本?

  • electron如何获取到桌面音频? 比方说 直播时电脑上播放视频 能不能获取到视频的音频 electorn官方提供的desktopCapturer API也是基于webtrc底层实现的。只能获取麦克风的音频。

  • 我使用jSoup解析所有的超文本标记语言从这个网站:新闻 我可以获取所有的倾斜,描述与选择一些我需要的元素。但找不到要选择的视频URL元素。我怎么能得到视频链接与jSoup或另一种库。谢谢!

  • 想获取 mp3 或者 wav 文件的音调信息, 那个可以量化的音调 输入一段音频 输出量化的音调, 跟随着时间, 1 秒一个, 3,3,9,2,10,13.....