【发布时间】:2017-03-29 12:53:15
【问题描述】:
我必须从应用程序中流式传输来自 Android 媒体播放器的音频文件。最初,要流式传输的文件来自一个 Http:// url,我正在为此使用代码-
public void playSample() {
AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
mediaPlayer = new MediaPlayer();
}
@Override
protected Void doInBackground(Void... arg0) {
try {
try {
mediaPlayer.setDataSource("http://an.http.url/");
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
Log.e("AudioFileError", "Could not open file for playback.", e);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
pd.dismiss();
}
};
task.execute((Void[]) null);
}
此代码在基于 http 的文件中正常工作,但现在音频文件的 URL 已更改为 https:// one(即https://an.https.url/),代码失败并出现异常
mediaPlayer.prepare();
例外是
Prepare failed.: status=0x1
请提出解决方案。
【问题讨论】:
-
以下 Rajan 的回答或多或少是正确的,但您可以使用本地代理作为中介来绕过该限制。有人在我的一篇帖子中提到了this project。我没有看过它,因此无法验证它的质量,但如果您搜索,还有其他示例。
标签: android https media-player android-mediaplayer