首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javax.media.Player和javazoom.jl.player.Player播放无线电流

使用javax.media.Player和javazoom.jl.player.Player播放无线电流
EN

Stack Overflow用户
提问于 2016-04-09 21:57:39
回答 1查看 290关注 0票数 0

我刚开始使用Java播放音频。我已经写了一些代码来播放一些广播流。我发现有一些像http://fm939.wnyc.org/wnycfm这样的流urls。它没有端口号,并且包含斜杠。我只能用javax.media.Player来播放这种类型的url。

还有其他有端口号和没有斜杠的流urls。例如,我有一个国家公共电台的网址140.254.23.68:8000。我可以用javazoom.jl.player.Player播放这些类型的url,因为这个播放器需要一个url字符串和一个端口号。

谁能告诉我更多关于流的类型,以及如何正确地使用上面的播放器。例如,可以用http://fm939.wnyc.org/wnycfm播放流javazoom.jl.player.Player吗?如果是这样的话,是怎么做的?任何帮助都将不胜感激。

增编:

对不起,我不是有意说javazoom Player接受url的。我正在使用下面的代码片段来创建javazoom播放器。从代码中可以看到,我正在使用SocketFactory createSocket方法创建连接。createSocket方法接受一个url和端口。我想知道如何播放像http://fm939.wnyc.org/wnycfm这样的url,换句话说,没有显式端口号的url。

见下面的代码片段-

代码语言:javascript
复制
response = null;
try {
    SocketFactory sf = SocketFactory.getDefault();
    connection = sf.createSocket(url,port);
    request = "GET / HTTP/1.1\n\n";
    outputStream = connection.getOutputStream();
    if(outputStream!=null) {
    outputStream.flush();
    byte[] b = null;
    try {b = request.getBytes(StandardCharsets.US_ASCII);}
    catch(NullPointerException npe) {..}

    if(b != null) {
    outputStream.write(b);
    outputStream.flush();
    response = connection.getInputStream();
    }
} catch (IOException e) {e.printStackTrace();}

javazoom.jl.player.Player zoomPlayer = null;
if(response!=null) {
    try {zoomPlayer = new javazoom.jl.player.Player(response);
    } catch (JavaLayerException e) {e.printStackTrace();}
}
return zoomPlayer;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-10 16:55:12

“URL可以选择指定”端口“。”

所以你可以设置端口。

我看不出javazoom.jl.player.Player在哪里使用url --也许是更新的版本。

但是无论如何,请参阅URL的文档。其中一个建设者说

代码语言:javascript
复制
URL(String protocol, String host, int port, String file, URLStreamHandler handler)

Creates a URL object from the specified protocol, host, port number, file, and handler.

jmf播放器可以被认为更稳定。并记录在案。

javazoom.jl.player.Player是一条线。

--

实际上,我可以使用常规的javax.sound过程来播放这两种流。

--

获取url流的方法如下:

代码语言:javascript
复制
  String u="http://140.254.23.68:8000";
  URL url=new URL(u);
  URLConnection uc = new URL(u).openConnection();
  InputStream is=(InputStream)uc.getInputStream();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36523211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档