【问题标题】:stream music with java [closed]用java流音乐[关闭]
【发布时间】:2012-04-06 18:29:58
【问题描述】:

我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,例如:

/music http://somewebsite.com/somesong.mp3

所以链接将从发送歌曲的客户端发送到服务器。然后服务器应该下载歌曲,将其流式传输到每个客户端(他们也不应该下载它)。问题是,我不知道如何通过基于 TCP 的连接流式传输 mp3。

我的问题是,是否有人可以为我提供我需要的库/教程/想法/代码示例。

作为替代方案,直接从一个客户的计算机流式传输音乐也可以。如果我(作为客户)在我的机器上播放一首歌曲(使用 VLC 或类似的音乐播放器)然后输入某个命令(可能是 /stream),我的声卡中的声音将被流式传输到服务器,然后到每个登录的客户端。

如果你能给我一些关于这两个方面的建议,那就太棒了,谷歌到目前为止并没有真正提供帮助,主要是因为我不太明白我应该搜索什么。

提前致谢!

【问题讨论】:

  • “流式传输”和“下载”之间的区别是客户端的考虑。服务器只是以任何一种方式发送字节。
  • 真的。我只是想强调一下,我不希望以某种方式流式传输/下载文件的副本。这将使一切变得非常缓慢(文件需要在播放之前完全下载)。歌曲应该在输入命令后立即开始。

标签: java networking tcp stream


【解决方案1】:

我找到了一个完全符合我要求的库: http://www.javazoom.net/javalayer/javalayer.html

public void play() {
        String song = "http://www.ntonyx.com/mp3files/Morning_Flower.mp3";
        Player mp3player = null;
        BufferedInputStream in = null;
        try {
          in = new BufferedInputStream(new URL(song).openStream());
          mp3player = new Player(in);
          mp3player.play();
        } catch (MalformedURLException ex) {
        } catch (IOException e) {
        } catch (JavaLayerException e) {
        } catch (NullPointerException ex) {
        }

}

希望对有类似问题的每个人都有帮助:-)

【讨论】:

    【解决方案2】:

    最简单的方法是使用 Servlet。将内容类型设置为“audio/mpeg3”。 servlet 将流式传输字节,用户将能够在他的浏览器中播放音乐。

    【讨论】:

      猜你喜欢
      • 2011-06-01
      • 2011-08-29
      • 2012-07-13
      • 1970-01-01
      • 2010-09-11
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      相关资源
      最近更新 更多