Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上从流媒体网页启动音频播放器的方法_Android_Shoutcast_Android Browser_M3u_Android Music Player - Fatal编程技术网

在Android上从流媒体网页启动音频播放器的方法

在Android上从流媒体网页启动音频播放器的方法,android,shoutcast,android-browser,m3u,android-music-player,Android,Shoutcast,Android Browser,M3u,Android Music Player,要链接到SHOUTcast/HTTP internet广播流,传统上您需要链接到播放列表文件,如M3U或PLS。从那里,浏览器将启动注册用于处理播放列表的音频播放器。这在任何PC、Palm、Blackberry和iPhone上都非常有效 如果不安装额外的软件,这种方法在Android中不起作用。当然,仅仅播放列表或StreamFrieve就可以处理得很好,但我认为必须有一种方法来调用Android安装中默认安装的音频或视频播放器 默认情况下,没有音频播放器能够处理M3U或PLS。播放器似乎打开了

要链接到SHOUTcast/HTTP internet广播流,传统上您需要链接到播放列表文件,如M3U或PLS。从那里,浏览器将启动注册用于处理播放列表的音频播放器。这在任何PC、Palm、Blackberry和iPhone上都非常有效

如果不安装额外的软件,这种方法在Android中不起作用。当然,仅仅播放列表或StreamFrieve就可以处理得很好,但我认为必须有一种方法来调用Android安装中默认安装的音频或视频播放器

默认情况下,没有音频播放器能够处理M3U或PLS。播放器似乎打开了它,但显示“不支持的媒体类型”

为了让这更烦人,浏览器能够通过HTTP传输MP3音频,只需打开指向MP3文件的链接。我尝试过直接链接到SHOUTcast托管的MP3流,结果应该是一样的,但是SHOUTcast在用户代理字符串中检测到“Mozilla”,它没有发送流,而是发送站点的信息页面


我应该如何在不使用额外应用程序的情况下,从普通移动站点链接到Android上的SHOUTcast流?

如评论中所述,你所问的是不可能的,至少在3.0问世之前,即使到那时,这项功能在大多数设备上还需要很长时间。“没有额外应用程序”的限制太过有限。以下是一些违反此约束的选择,我敦促你们考虑:
  • 要求用户安装应用程序
    是的,这不是你想要的,但这是最容易做到的。(正如你所发现的)将是一个很好的推荐

  • 使用flash
    不是每个人都有flash,但是对于那些有flash的人,你可以嵌入一个flash小部件来播放播放列表。我只是通过快速的谷歌搜索找到了。SHOUTcast有自己的flash播放器吗

  • 等待
    基本上你唯一的选择,因为这个功能在Android中还没有


您的M3U文件包含什么类型的流

例如,您可以跳过M3U,直接将数据源设置为rtsp流

mediaPlayer.setDataSource("rtsp://xxx/stream.stream");
完美地工作


别忘了在不同的线程中运行它。

终于找到了解决方案!使用Operaweb浏览器,它将提示保存m3u文件。然后启动播放列表。在我的HTC Inclusible 2上就像一个魔咒,一个适用于所有Android的解决方案!(在2.1及更高版本上测试) 事实证明,这是可能的。对于Android,您只需直接链接到流,而不是像在其他平台上那样链接到播放列表。(这似乎是鲁本·斯克拉顿在评论中的意思。我真希望早点看到他的评论!)

浏览器将连接到流,检测
内容类型
,然后决定将其传递给默认媒体播放器(如果可以处理)。然后,媒体播放器将缓冲并开始播放

请注意,如果您想让SHOUTcast正常工作,必须对其进行大量的黑客攻击,因为Android需要有效的HTTP资源,而SHOUTcast不提供该资源。还要注意的是,分块编码在Android2.2及更早版本上似乎不起作用


顺便说一句,如果您不想为此编写自己的代码,我已经实现了一个我正在使用的流媒体服务器。

没有一个“Android安装上通常默认安装的音频或视频播放器”。Android开源项目中的一个不支持播放列表,至少通过Android 2.3是这样。根据preview SDK,在Android 3.0中,“应用程序现在可以将M3U播放列表URL传递到媒体框架,以开始HTTP实时流媒体会话。”这意味着Android开源项目媒体播放器应用程序可能支持播放列表,尽管我们还有几周才发现。感谢Commonware提供您的见解。当我打开手机上的“音乐”和我见过的任何其他运行Android的手机时,都会打开一个音频播放器,我见过的每一部手机上的音乐都是一样的。你指的是音频播放器吗?它有具体的名字吗?当我打开“Internet”时,浏览器会怎么样。。它有名字吗?我知道这些并不是每个安卓设备都可以使用的,但我还是想针对最常见的安卓设备。当我在浏览器中打开MP3时,它开始播放。这是网络浏览器的一项功能,还是其他功能?Android开源项目(AOSP)包括许多标准应用程序,包括音乐播放器。它的源代码位于此处:。当浏览器打开MP3或其他内容时,它不会按名称运行程序,而是要求Android的Intents框架来处理。它有效地告诉操作系统“将这些数据交给一个可以处理MIME类型‘audio/mpeg’的程序”。看,尤其是“数据”部分。谢谢弗雷德利,我担心这是我唯一的选择,我已经考虑了这三个。事实上,我正在为它构建一个Flash播放器。5年以上的设备支持简单的M3U,而Android的默认播放器却不支持,这真是令人沮丧。然而,我还没有放弃。我目前正在尝试强制SHOUTcast服务器发送音频/mpeg,不管用户代理字符串是什么。如果我能做到这一点,那就有希望了。也许…SHOUTcast/HTTP,我是在网页上做的,而不是在某些应用程序中。不需要Opera,它们都保存了一个M3U。