我的应用程序播放ShoutCast Streaming,目标操作系统为1.6及以上。我已经应用了一些来自NPR应用程序的代码并进行了一些修改。
这是代码
mediaPlayer = new MediaPlayer();
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// Log.d(LOG_TAG, "Preparing: " + playUrl);
mediaPlayer.prepareAsync();
mediaPlayer.start();`
代码不会在模拟器或设备上播放任何内容(使用2.1在Samsung Galaxy中测试)。
这是LogCat消息。
即将开始http://88.191.81.31:8206
12-08 14:16:42.229:WARN / MediaPlayer(5520):info / warning(1,26)
12-08 14:16:42.239:ERROR / PlayerDriver(1870):命令PLAYER_INIT已完成,错误或信息PVMFFailure
12-08 14:16:42.239:ERROR / MediaPlayer(5520):错误(1,-1)
12-08 14:16:42.239:WARN / PlayerDriver(1870):PVMFInfoErrorHandlingComplete
12-08 14:16:42.259:ERROR / MediaPlayer(5520):以状态0开始调用 12-08 14:16:42.259:ERROR / MediaPlayer(5520):错误(-38,0)
12-08 14:16:42.299:INFO / MediaPlayer(5520):Info(1,26)
12-08 14:16:42.299:ERROR / MediaPlayer(5520):错误(1,-1)
12-08 14:16:42.304:ERROR / MediaPlayer(5520):错误(-38,0)
这是一个问题。你能告诉我装置里发生了什么吗? 2.如何解决这个错误?。
答案 0 :(得分:4)
您过早致电start()
。 MediaPlayer的Javadocs解释了它(看图片):
您必须在致电prepare()
或
start()
您致电prepareAsync()
并等待OnPreparedListener.onPrepared()
被调用,然后(可能在此方法内)调用start()
。
<强>更新强>
仅在2.2上支持Shoutcast流。对于早期版本,您必须创建本地代理,将响应协议从ICY(shoutcast)更改为HTTP,其中 媒体播放器将支持。看看这个:
此前已经讨论过: