我刚开始使用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。
见下面的代码片段-
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;发布于 2016-04-10 16:55:12
“URL可以选择指定”端口“。”
所以你可以设置端口。
我看不出javazoom.jl.player.Player在哪里使用url --也许是更新的版本。
但是无论如何,请参阅URL的文档。其中一个建设者说
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流的方法如下:
String u="http://140.254.23.68:8000";
URL url=new URL(u);
URLConnection uc = new URL(u).openConnection();
InputStream is=(InputStream)uc.getInputStream();https://stackoverflow.com/questions/36523211
复制相似问题