Android Shoutcast:想要帮助在1.6中玩ShoutCast Streaming

时间:2010-12-08 09:08:51

标签: android streaming shoutcast

我的应用程序播放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.如何解决这个错误?。

1 个答案:

答案 0 :(得分:4)

您过早致电start()MediaPlayer的Javadocs解释了它(看图片):

  1. 您必须在致电prepare()

  2. 之前致电start()
  3. 您致电prepareAsync()并等待OnPreparedListener.onPrepared()被调用,然后(可能在此方法内)调用start()

  4. <强>更新

    仅在2.2上支持Shoutcast流。对于早期版本,您必须创建本地代理,将响应协议从ICY(shoutcast)更改为HTTP,其中 媒体播放器将支持。看看这个:

    http://code.google.com/p/npr-android-app/source/browse/trunk/Npr/src/org/npr/android/news/StreamProxy.java

    此前已经讨论过:

    Listen to a shoutcast with Android