2010-05-19 42 views
9

HTTP MP3流在股票Droid和Nexus One的,像这样的意图Android的意图:对HTC不可思议

new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.parse("http://example.com/somemp3.mp3"), "audio/mp3"); 

作品就好了弹出打开系统的音乐播放器以流文件。但它与HTC Incredible上的任何活动都不匹配,因此在我拨打startActivity时导致强制关闭(我猜是因为在SenseUI的替代应用程序中缺少意图过滤器)。如果我不需要,我宁愿不必管理MediaPlayer实例;有没有人知道是否有一种方法来构建一个意图,说服令人难以置信的内置音乐或流媒体应用程序通过HTTP播放MP3流?

+0

为什么它值得我放弃并实施MediaPl基于ayer的活动在应用程序中播放MP3。尽管如此,我仍然认为Intents应该有更优雅更简单的解决方案。 – 2010-07-22 01:06:48

回答

1

尝试“音频/ *”类型。我认为它有效。

0

我正在处理类似的问题,当我进入搜索时,我发现这个link,它可以帮助你从mp3源做一些流。

希望它有帮助。

+0

如果您将自己的基于MediaPlayer的解决方案从磁盘上的文件播放出来,但并未真正回答原始问题(如何在SenseUI中的系统音乐播放器中打开HTTP MP3 URI, *有*来处理所有MediaPlayer废话)。 – 2011-02-23 15:39:28

1

此代码为我工作:

Intent i = new Intent(android.content.Intent.ACTION_VIEW); 
i.setDataAndType(Uri.parse(url), "audio/*"); 
context.startActivity(i); 

您还可以查看视频流,使用 “视频/ *” 类型。

此方法适用于Android 1.5和2.2,不确定SenseUI兼容性。 “audio/mp3”也不适用于我,所以它不是特定的UI。

+0

这就是Fedor的答案......我仍然必须在SenseUI手机上测试它(这是真正的关键点 - 对于非感应设备,“audio/mp3”无论如何都工作得很好)。 – 2011-06-30 15:55:02

+0

有趣的是,我认为使用android.content.Intent.ACTION_VIEW而不是Intent.ACTION_VIEW有所作为,但现在看起来它的工作原理是一样的。你尝试过“(星星)/(星星)”的类型吗? – NoBugs 2011-06-30 16:23:53

0

从服务器播放音频文件试试这个

try { 
    MediaPlayer player = new MediaPlayer(); 
    player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    player.setDataSource("http://xty/MRESC/images/test/xy.mp3" 
     ); 
    player.prepare(); 
    player.start(); 

} catch (Exception e) { 
// TODO: handle exception 
} 

也清单档案中的使用这个权限..

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

希望帮助您

这个代码here

原本件