不支持网址编码

时间:2013-02-18 10:59:41

标签: android http urlencode android-mediaplayer

我有在线档案。我正在尝试使用media player using live streaming播放它。但媒体播放器提供error (-1,1004)     我认为我的媒体播放器没有得到正确的网址,因为它包含阿拉伯字符,所以我尝试用Html.encode或UrlEncoder类编码仍然得到相同的错误。

所以最后我在webview中加载了这个url,在页面加载完成后我将网页网址传递给了媒体播放器。

    WebView webView = new WebView(SongActivity.this);
        webView.setSoundEffectsEnabled(false);
        webView.loadUrl("MY URL");
        webView.setWebViewClient(new WebViewClient() {
            public void onPageFinished(WebView view, String url) {

                try {

                playerService.startPlay(url );// this passes url to media player and url will be played using media player

                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            };

            public void onPageStarted(WebView view, String url,
                    android.graphics.Bitmap favicon) {
                System.out.println("Decoding url:" + strURl);
            };
        });

它的工作正常,也可以播放歌曲,但这不是标准的。  对于普通网址(没有阿拉伯字符),媒体播放器代码运行良好。

你能为我提供一些标准的解决方案吗?

1 个答案:

答案 0 :(得分:1)

基于错误代码(-1,1004),您似乎可以从服务器获得HTTP 403 Forbidden作为答案。您是否在mediaPlayer.setDataSource(String url)之前尝试了Uri.encode(String)。toString()?

来自https://stackoverflow.com/a/4571518/262462

  

不要使用URLEncoder类!尽管名称,该类实际上是HTML表单编码,而不是URL编码。