0

WebView用来查看一些网页内容。一些页面将我重定向到流式音频。当我使用设备浏览器访问流式音频 URL 时,它会提示我打开外部播放器或只是播放它。当我用 . 打开它时WebView,我看到一个空白页。

我的问题是:如何判断链接(或 URL)实际上是流式音频并进行相应处理?

网址例如:

http://mobile.internet-radio.com/MobileInternetRadioPlayer.php?radio=dWszLmludGVybmV0LXJhZGlvLmNvbToxMDY5Nw==
4

2 回答 2

0

我是这样做的:

    public String getMimeType(String strUrl) throws IOException, Exception {
    HttpHead httpHead = new HttpHead(strUrl);

    HttpResponse response = getHttpClient().execute(httpHead);

    Header[] headersArr = response.getHeaders("Content-Type");
    String mimeType = headersArr[0].getValue();
    return mimeType;
    }

要使用它:

                // check for special content
            String mimeType = null;
            try {
                mimeType = getMimeType(urlStr).toLowerCase();
            } catch (Exception e) {
            }

            if (mimeType != null) {
                // AUDIO
                if (mimeType.startsWith("audio")){
                    Uri uri = Uri.parse(urlStr);
                    Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
                    intent.setDataAndType(uri, "audio/*"); 
                    startActivity(intent);
                    return true;
                } else if (mimeType.startsWith("video")){
                    Uri uri = Uri.parse(urlStr);
                    Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
                    intent.setDataAndType(uri, "video/*"); 
                    startActivity(intent);
                    return true;
                }
            }
于 2013-06-06T06:08:59.180 回答
0

这是响应的 HTTP 标头:

HTTP/1.1 200 OK =>
Date => Wed, 06 Mar 2013 10:53:40 GMT
Server => Apache/2.2.16
X-Powered-By => PHP/5.3.3-7+squeeze14
Cache-Control => max-age=600
Expires => Wed, 06 Mar 2013 11:03:40 GMT
Connection => close
Content-Type => audio/mpeg

因此,返回Content-Type的是Audio MimeType之一。这意味着正在返回音频数据。

HttpResponse.getHeaders()您可以使用方法获取标题列表。

于 2013-03-06T10:58:18.733 回答