0

私はWebViewいくつかのWebコンテンツを表示するために使用します。一部のページでは、ストリーミングオーディオにリダイレクトされます。デバイスブラウザでストリーミングオーディオURLにアクセスすると、外部プレーヤーを開くか、再生するように求められます。で開くとWebView、空白のページが表示されます。

私の質問は次のとおりです。リンク(またはURL)が実際にストリーミングオーディオであることを確認し、それに応じて処理するにはどうすればよいですか?

例:URL:

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

2 に答える 2

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

したがって、返されるのはAudioMimeTypeのContent-Type1つです。これは、オーディオデータが返されていることを意味します。

HttpResponse.getHeaders()メソッドを使用してヘッダーのリストを取得できます。

于 2013-03-06T10:58:18.733 に答える
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 に答える