Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java分块播放MP3?_Java_Stream_Mp3 - Fatal编程技术网

用Java分块播放MP3?

用Java分块播放MP3?,java,stream,mp3,Java,Stream,Mp3,遗憾的是,Java中缺少MP3支持。我正在开发一个应用程序,需要接收MP3片段并播放它们。我是这样使用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(Strin

遗憾的是,Java中缺少MP3支持。我正在开发一个应用程序,需要接收MP3片段并播放它们。我是这样使用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文件的块,我需要在它们到达时播放它们。还有更好的选择吗

编辑

发现了一个有趣的类似问题:
另外:

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


因为玩家希望处理一个输入流,所以这一点都不明智。您可能不需要将其包装在BufferedInputStream中,因为您将在您的类中处理它。

您应该看看这个线程,它已经解决了一个简单步骤的问题@GhostDerfel:我认为它只在浏览器中工作?。。。我需要在桌面应用程序中播放这些mmmm你是对的,从来没有在桌面应用程序中播放过这些…只有web和Android,对不起:(.如果我发现一些东西,我将在这里发布作为参考,我认为这一点值得一试。你检查过了吗:?你能在你的答案中添加一个代码演示吗?@avidProgrammer没有关于数据是如何提供的更多信息。在我的情况下,数据会连续写入一个临时文件,玩家会从该文件作为输入播放这是我问的一个关于同样问题的问题