我试图构建一个用于播放在线广播的Android应用程序。代码正在模拟器中正常工作。但是当安装在手机中时它不起作用。
MediaPlayer mediaPlayer = new MediaPlayer();
String url = "http://5293.live.streamtheworld.com:3690/JACK2_LOWAAC_SC";
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();
链接格式有问题吗?我尝试在html5中播放相同的链接,它在桌面上工作正常,但在手机中打开链接不起作用的同一网站。还有任何问题或html5中的任何组件在智能手机上无法在桌面上工作吗? 我需要播放实时流而不是像mp3这样的静态文件。您可以从www.listenlive.eu/uk.html获取一些URL并尝试播放。我的代码中的URL仅来自此网站。下载VLC文件并使用任何文本编辑器打开它,您将获得URL。
答案 0 :(得分:0)
使用mediaPlayer.prepareAsync();而不是mediaPlayer.prepare();因为你是从网上流媒体,还添加了互联网权限
<uses-permission android:name="android.permission.INTERNET"/>
另外
String url = "http://5293.live.streamtheworld.com:3690/JACK2_LOWAAC_SC";
对我来说不起作用而是使用
final String url = "http://vprmix.streamguys.net/vprmix64.mp3";
private boolean isPLAYING = false;
public void streamAudio(String url) {
if (!isPLAYING) {
isPLAYING = true;
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
Log.e("mediaPlayer", "prepare() failed");
}
} else {
isPLAYING = false;
stopPlaying();
}
}
private void stopPlaying() {
mediaPlayer.release();
mediaPlayer = null;
}