gpt4 book ai didi

java - 用 Java 分块播放 MP3?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:25:43 24 4
gpt4 key购买 nike

遗憾的是 Java 中缺少对 MP3 的支持。我正在开发一个需要接收 MP3 block 并播放它们的应用程序。我像这样使用 Jlayer MP3 库:

import javazoom.jl.player.Player;
public class MP3 {
private String filename;
private Player player;

// constructor that takes the name of an MP3 file
public MP3(String filename) {
this.filename = filename;
}

public void close() { if (player != null) player.close(); }

// play the MP3 file to the sound card
public void play() {
try {
FileInputStream fis = new FileInputStream(filename);
BufferedInputStream bis = new BufferedInputStream(fis);
player = new Player(bis);
}
catch (Exception e) {
System.out.println("Problem playing file " + filename);
System.out.println(e);
}

player.play();
}

但我的问题是我只有完整 MP3 文件的 block ,我需要在它们到达时播放它们。有没有更好的选择?

编辑

发现一个有趣的类似问题:MP3 won't stream with JMF还有:Decoding MP3 files with JLayer

最佳答案

创建一个实现 InputStream 的类,并在 block 到达时接收 block ,但将字节提供给播放器。只需确保在每个 block 请求字节时跟踪您在每个 block 中的位置,然后在您烧完它并开始提供下一个 block 的数据时丢弃该 block 。

由于玩家期望处理 InputStream,所以它不会更明智。您可能不需要将其包装在 BufferedInputStream 中,因为您将在类里面处理它。

关于java - 用 Java 分块播放 MP3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21679521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com