Android Shoutcast:需要帮助在 1.6 中播放 ShoutCast Streaming

发布于 2024-10-06 06:39:43 字数 1200 浏览 3 评论 0 原文

我的应用程序播放 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();`

该代码不会在模拟器或设备上播放任何内容(在 Samsung Galaxy 2.1 中进行测试)。


这是 LogCat 消息。

即将开始http://88.191.81.31:8206
12-08 14:16:42.229: 警告/MediaPlayer(5520): 信息/警告 (1, 26)
12-08 14:16:42.239:错误/PlayerDriver(1870):命令 PLAYER_INIT 已完成,但出现错误或信息 PVMFFailure
12-08 14:16:42.239: 错误/MediaPlayer(5520): 错误 (1, -1)
12-08 14:16:42.239: 警告/PlayerDriver(1870): PVMFInfoErrorHandlingComplete
12-08 14:16:42.259: 错误/MediaPlayer(5520): 在状态 0 下开始调用
12-08 14:16:42.259: 错误/MediaPlayer(5520): 错误 (-38, 0)
12-08 14:16:42.299: 信息/MediaPlayer(5520): 信息 (1,26)
12-08 14:16:42.299: 错误/MediaPlayer(5520): 错误 (1,-1)
12-08 14:16:42.304: 错误/MediaPlayer(5520): 错误 (-38,0)


这是问题。 1. 你能告诉我设备发生了什么吗? 2.如何解决这个错误?

My application plays ShoutCast Streaming and the target OS is 1.6 and above. I have applied some code from NPR application with some modification.

Here is the code

mediaPlayer = new MediaPlayer();
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// Log.d(LOG_TAG, "Preparing: " + playUrl);
mediaPlayer.prepareAsync();
mediaPlayer.start();`

The code doesnot play anything on simulator or device(Testing in Samsung Galaxy with 2.1).


Here is the LogCat message.

About to play 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): Command PLAYER_INIT completed with an error or info PVMFFailure
12-08 14:16:42.239: ERROR/MediaPlayer(5520): error (1, -1)
12-08 14:16:42.239: WARN/PlayerDriver(1870): PVMFInfoErrorHandlingComplete
12-08 14:16:42.259: ERROR/MediaPlayer(5520): start called in state 0
12-08 14:16:42.259: ERROR/MediaPlayer(5520): error (-38, 0)
12-08 14:16:42.299: INFO/MediaPlayer(5520): Info (1,26)
12-08 14:16:42.299: ERROR/MediaPlayer(5520): Error (1,-1)
12-08 14:16:42.304: ERROR/MediaPlayer(5520): Error (-38,0)


Here is the question. 1. Can you tell me whats happening in device? 2. How to solve this error?.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如果没有你 2024-10-13 06:39:43

您调用 start() 的时间太早了。 MediaPlayer 的 Javadocs 对其进行了解释(看图片):

  1. 要么必须在调用 start() 之前调用 prepare(),要么

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

更新:

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

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

之前已经讨论过:

使用 Android 收听喊话

You are calling start() too soon. Javadocs of MediaPlayer explain it (look at the picture):

  1. Either you have to call prepare() before you call start(), or

  2. You call prepareAsync() and wait for OnPreparedListener.onPrepared() to be called, then (possibly inside this method) call start().

Updated:

Shoutcast streams are nativelly supported only on 2.2. For earlier versions you must create local proxy that changes the response protocol from ICY (shoutcast) to HTTP, which the
mediaplayer will support. Take a look at this:

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

This has previously been discussed:

Listen to a shoutcast with Android

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文