【发布时间】:2011-04-26 02:01:51
【问题描述】:
我正在尝试使用 Android 的 MediaPlayer 创建音频流媒体。如果它不适用于 Android 2.1 或以下版本,那也没关系。我需要能够播放来自 SHOUTcast 流的音频。这是我的代码:
player = new MediaPlayer();
try {
player.setDataSource("http://87.230.103.107:8000");
player.prepareAsync();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
player.start();
由于某种原因,这段代码什么也不会播放。我认为这可能与应用程序权限有关。有谁知道怎么回事?
谢谢!
[更新] 我收到以下错误:
04-25 23:35:15.432: ERROR/MediaPlayer(283): start called in state 4
04-25 23:35:15.432: ERROR/MediaPlayer(283): error (-38, 0)
04-25 23:35:15.602: ERROR/MediaPlayer(283): Error (-38,0)
04-25 23:35:17.542: INFO/AwesomePlayer(33): calling prefetcher->prepare()
04-25 23:35:18.547: INFO/Prefetcher(33): [0x17650] cache below low water mark, filling cache.
04-25 23:35:18.762: INFO/AwesomePlayer(33): prefetcher is done preparing
04-25 23:35:19.769: ERROR/AwesomePlayer(33): Not sending buffering status because duration is unknown.
【问题讨论】:
-
你是在模拟器中运行这个吗?我以前在模拟器中运行媒体时遇到过问题。在实际设备中尝试一下,也许它会工作。
-
是的,我在模拟器上运行它。可惜我没有真正的设备:(
-
我的直觉是这就是问题所在。其他人可能会有另一种看法。
-
只是为了好玩,将您的数据源设置为
http://87.230.103.107:8000/;。如果有效,则意味着您的用户代理是 Mozilla,这会导致 SHOUTcast 服务器发回管理界面而不是流。分号强制它返回流。
标签: android audio mp3 media-player shoutcast