我正在尝试编写一个播放音频流的播放器 - shoutcast v2(我尝试了所有格式播放流 - .pls,.m3u,.mp3和clean http://example.com:port)。
以下代码在模拟器中运行,适用于手机中兴(Android 4.1.2)但不起作用,例如。索尼Xperia M(Android 4.3)并不知道为什么。
代码已经以各种方式编写,但仍然没有解决问题。
P.S。 Play商店中的一个应用程序也不起作用,播放(MaxItalo播放器),但另一个应用程序(例如RadioParty)再现播放。
我的代码(代码的一部分):
private class PlayM extends AsyncTask<Void,Void,Void>
{
@Override
protected void onPreExecute() {
dialog.show();
mPlayer = new MediaPlayer();
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
}
@Override
protected Void doInBackground(Void... params) {
try {
mPlayer.setDataSource(getApplicationContext(), Uri.parse(url));
mPlayer.prepareAsync();
} catch (IllegalArgumentException e1) {
errorToast.setText("IllegalArgumentException "+e1);
errorToast.show();
} catch (IllegalStateException e2) {
errorToast.setText("IllegalStateException "+e2);
errorToast.show();
} catch (IOException e3) {
errorToast.setText("IOException "+e3);
errorToast.show();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer player) {
dialog.hide();
player.start();
}
});
}
}
public void clickPlay(View v) {
if(mPlayer==null) {
new PlayM().execute();
}
}