【问题标题】:Decoding MP3 files with JLayer使用 JLayer 解码 MP3 文件
【发布时间】:2012-08-23 20:02:28
【问题描述】:

我想使用 JLayer 来解码 MP3 文件。我已经搜索并搜索了有关如何执行此操作的文档和示例,但没有发现任何用处。我发现的所有内容都嵌入在其他示例或引用 JavaSound 中,这在我的情况下是不可接受的。

我觉得这非常容易,但我不知道该怎么做。不知道参数是干什么用的

Decoder decoder = new Decoder();
decoder.decodeFrame(Header header, Bitstream stream);

或如何获得它们。

tl;dr 如何解码只有 JLayer 的 MP3 文件?没有 MP3 SPI、JavaSound、Tritonus——什么都没有。

【问题讨论】:

  • 你想解码并做什么?存储为 Wave 文件?使用扬声器播放?
  • @VitalyPolonetsky 将样本存储在数组中。我只是希望能够从 mp3 文件中获取所有样本。
  • 所以你想存储样本以备将来使用(我想)。但是您需要样本的格式是什么?
  • PCM。 Jlayer 具有返回样本缓冲区的 decodeFrame 方法。我只想知道如何使用该方法来获取给定数量的样本。
  • @Albatross 你有使用 jLayer 将 .mp3 转换为 pcm 数据的代码吗?

标签: mp3 decode jlayer


【解决方案1】:

我自己想出来的。

Bitstream bitStream = new Bitstream(new FileInputStream("path/to/audio.mp3"));

while(condition){
    Decoder decoder = new Decoder();
    int[] samples = decoder.decodeFrame(bitStream.readFrame(), bitStream); //returns the next 2304 samples
    bitStream.closeFrame();

    //do whatever with your samples
}

【讨论】:

  • 随心所欲。它控制有多少 mp3 被解码。所以如果你想解码整个文件,你的条件就是是否有更多的样本要解码。
  • @Albatross:这真的很有趣。你认为这可以用来在互联网上流式传输 mp3 吗?还有你在一段时间后如何播放这些样本?
猜你喜欢
  • 2012-12-07
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
相关资源
最近更新 更多