gpt4 book ai didi

java - 访问 Shoutcast 当前流信息

转载 作者:可可西里 更新时间:2023-11-01 17:07:59 25 4
gpt4 key购买 nike

我正在为 android 创建一个互联网广播应用程序。到目前为止,我已经成功地使用 shoutcast url 为各个电台进行了流式传输和播放。这是我的代码:

      String url = "http://185.33.22.13:7704"; 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try
{
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
}
catch (IOException e)
{
e.printStackTrace();
}
mediaPlayer.start();

接下来我想获取要在我的应用程序中显示的流信息。我要检索绿框显示的信息:

enter image description here

人们发布了有关 FFmpegMediaMetadataRetriever 的帖子,但 github 超出了我的理解范围,还尝试了他们的 apk 文件,当给出上述 http 链接时,该文件什么都不做。请给我一个简单而强大的解决方案,以从 SHOUTcast DNAS 状态检索数据。提前致谢 !

最佳答案

Shoutcast V1 有一个包含比特率和其他信息的特殊页面。

如果您的 shoutcast 正在运行 http://185.33.22.13:7704

那么这个页面的 url 将是: http://185.33.22.13:7704/7.html

该页面的正文如下所示:

 <HTML><meta http-equiv="Pragma" content="no-cache"></head><body>214,1,312,1000,213,64,Ferry Tayle - The Way Back Home (Edit) (feat. Poppy)</body></html>

用逗号分隔该文本,您将得到:

  • 当前听众
  • 流状态
  • 高峰听众
  • 最大监听数(从服务器开始)
  • 独特的听众
  • 比特率
  • 歌名

这是一个javascript(Nodejs)的例子,它从7.html页面获取数据并解析它:

var request = require('request'),
options = {
url: 'http://185.33.22.21:7704/7.html',
headers: {
'User-Agent': 'Mozilla/5.0'
}
},
regex = /<body>(.*?)<\/body>/i;

request(options, function (error, response, body) {
var match = regex.exec(body),
data = match[1].split(',');

console.log("7.html: ", body);

console.log("Current listeners: ", data[0]);
console.log("Stream status: ", data[1]);
console.log("Peak listeners: ", data[2]);
console.log("Maximum number of listeners: ", data[3]);
console.log("Unique listeners: ", data[4]);
console.log("Bitrate: ", data[5]);
console.log("Metada: ", data[6]);
});

请注意,需要设置“User-Agent” header 。

如果您有该服务器的管理员密码 - 那么另一种方法是使用以下 URL 直接从 shoutcast 管理页面获取 XML 数据:

http://185.33.22.13:7704/admin.cgi?mode=viewxml

关于java - 访问 Shoutcast 当前流信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32611907/

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