Javascript 如何从在线流媒体电台获取流媒体url

Javascript 如何从在线流媒体电台获取流媒体url,javascript,android,html,stream,Javascript,Android,Html,Stream,我被要求为某个电台制作非官方的android在线流媒体应用程序。 我有过在android上播放某些mp3或其他流媒体的经验。 但是我不知道在mediaPlayer.setDataSource(url)中提供的流url 有什么方法可以从官方流媒体页面获取流url吗?当您转到流url时,会收到一个文件。将此文件馈送给解析器,以从中提取内容。文件(通常)为纯文本,包含要播放的url。不太难 如果查看页面源代码,您将看到它通过shoutcast来流式传输音频 这是流url “StreamUrl”:“ 返

我被要求为某个电台制作非官方的android在线流媒体应用程序。
我有过在android上播放某些mp3或其他流媒体的经验。
但是我不知道在
mediaPlayer.setDataSource(url)
中提供的
流url


有什么方法可以从官方流媒体页面获取流url吗?

当您转到流url时,会收到一个文件。将此文件馈送给解析器,以从中提取内容。文件(通常)为纯文本,包含要播放的url。

不太难

如果查看页面源代码,您将看到它通过shoutcast来流式传输音频

这是流url

“StreamUrl”:“

返回一个JSON,如下所示:

{
    "Streams": [
        {
            "StreamId": 3244651,
            "Reliability": 92,
            "Bandwidth": 64,
            "HasPlaylist": false,
            "MediaType": "MP3",
            "Url": "http://mp3hdfm32.hala.jo:8132",
            "Type": "Live"
        }
    ]
}
我相信这就是您需要的url:


沙哈尔的回答确实很有帮助,但我发现自己做这件事相当乏味,所以我制作了一个漂亮的小Python程序:

import re
import urllib2
import string
url1 = raw_input("Please enter a URL from Tunein Radio: ");
open_file = urllib2.urlopen(url1);
raw_file = open_file.read();
API_key = re.findall(r"StreamUrl\":\"(.*?),",raw_file);
#print API_key;
#print "The API key is: " + API_key[0];
use_key = urllib2.urlopen(str(API_key[0]));
key_content = use_key.read();
raw_stream_url = re.findall(r"Url\": \"(.*?)\"",key_content);
bandwidth = re.findall(r"Bandwidth\":(.*?),", key_content);
reliability = re.findall(r"lity\":(.*?),", key_content);
isPlaylist = re.findall(r"HasPlaylist\":(.*?),",key_content);
codec = re.findall(r"MediaType\": \"(.*?)\",", key_content);
tipe = re.findall(r"Type\": \"(.*?)\"", key_content);
total = 0
for element in raw_stream_url:
    total = total + 1
i = 0
print "I found " + str(total) + " streams.";
for element in raw_stream_url:
    print "Stream #" + str(i + 1);
    print "Stream stats:";
    print "Bandwidth: " + str(bandwidth[i]) + " kilobytes per second."
    print "Reliability: " + str(reliability[i]) + "%"
    print "HasPlaylist: " + str(isPlaylist[i]) + "."
    print "Stream codec: " + str(codec[i]) + "."
    print "This audio stream is " + tipe[i].lower() + "."
    print "Pure streaming URL: " + str(raw_stream_url[i]) + ".";
    i = i + 1
raw_input("Press enter to close TMUS.")

这基本上是Shahar的自动化解决方案。

编辑了ZygD对python 3.x的回答:

import re
import urllib.request
import string
url1 = input("Please enter a URL from Tunein Radio: ");
request = urllib.request.Request(url1);
response = urllib.request.urlopen(request);
raw_file = response.read().decode('utf-8');
API_key = re.findall(r"StreamUrl\":\"(.*?),\"",raw_file);
#print API_key;
#print "The API key is: " + API_key[0];
request2 = urllib.request.Request(str(API_key[0]));
response2 = urllib.request.urlopen(request2);
key_content = response2.read().decode('utf-8');
raw_stream_url = re.findall(r"Url\": \"(.*?)\"",key_content);
bandwidth = re.findall(r"Bandwidth\":(.*?),", key_content);
reliability = re.findall(r"lity\":(.*?),", key_content);
isPlaylist = re.findall(r"HasPlaylist\":(.*?),",key_content);
codec = re.findall(r"MediaType\": \"(.*?)\",", key_content);
tipe = re.findall(r"Type\": \"(.*?)\"", key_content);
total = 0
for element in raw_stream_url:
    total = total + 1
i = 0
print ("I found " + str(total) + " streams.");
for element in raw_stream_url:
    print ("Stream #" + str(i + 1));
    print ("Stream stats:");
    print ("Bandwidth: " + str(bandwidth[i]) + " kilobytes per second.");
    print ("Reliability: " + str(reliability[i]) + "%");
    print ("HasPlaylist: " + str(isPlaylist[i]));
    print ("Stream codec: " + str(codec[i]));
    print ("This audio stream is " + tipe[i].lower());
    print ("Pure streaming URL: " + str(raw_stream_url[i]));
i = i + 1
input("Press enter to close")

提供的答案对我不起作用。我添加了另一个答案,因为这就是我在搜索广播流URL时的结果

Radio Browser是一个可搜索的网站,为世界各地的广播电台提供流式URL:


搜索电台,如,或,然后单击保存按钮,下载PLS文件,您可以在radioplayer(节奏框)中打开该文件,或在文本编辑器中打开该文件并复制URL以添加到Goodvibes中

除非我在互联网上找不到它,否则我不会在这里问,我已经在谷歌上搜索了Stakoverflow,就是这样!在发布之前,我尝试了inspect element并找到了类似的内容,但我找不到,谢谢。我目前遇到了同样的问题,需要在help me Out播放音频。这很难作为答案。它仅适用于描述中给出的示例站点!它不适用于“如何从在线流媒体广播电台获取流媒体url”的问题,这适用于任何广播电台!!要将整个列表替换为这个
API\u key=re.findall(r“StreamUrl\”:\“(.*?,\”,原始文件)
我刚刚在regexI上添加了
\”
,我必须将
http:
附加到API键:
request2=urllib.request.request(“http://s”%API\u key[0])