我有在线档案。我正在尝试使用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);
};
});
它的工作正常,也可以播放歌曲,但这不是标准的。 对于普通网址(没有阿拉伯字符),媒体播放器代码运行良好。
你能为我提供一些标准的解决方案吗?
答案 0 :(得分:1)
基于错误代码(-1,1004),您似乎可以从服务器获得HTTP 403 Forbidden作为答案。您是否在mediaPlayer.setDataSource(String url)
之前尝试了Uri.encode(String)。toString()?
来自https://stackoverflow.com/a/4571518/262462:
不要使用URLEncoder类!尽管名称,该类实际上是HTML表单编码,而不是URL编码。