如何强制Android MediaPlayer只使用一个连接来下载音乐?

时间:2012-04-19 07:57:06

标签: android streaming mp3 media-player android-4.0-ice-cream-sandwich

我的问题是新的Android ICS MediaPlayer现在分两步下载音乐:

1)它向http服务器发送get请求,服务器开始发送mp3文件:

GET /stream/test.mp3 HTTP/1.1
Host: 192.168.30.113
Connection: keep-alive
User-Agent: stagefright/1.2 (Linux;Android 4.0.3)
Accept-Encoding: gzip,deflate

HTTP/1.1 200 OK
Date: Thu, 19 Apr 2012 07:37:29 GMT
Server: Apache/2.2.21 (Win64) PHP/5.3.8
Last-Modified: Sat, 03 Feb 2007 11:17:50 GMT
ETag: "6d0000000400e4-5b415f-428909c5e7a6b"
Accept-Ranges: bytes
Content-Length: 5980511
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: audio/mpeg

2)关闭第一个连接并重新打开另一个连接:

GET /stream/test.mp3 HTTP/1.1
Host: 192.168.30.113
Accept: */*

HTTP/1.1 200 OK
Date: Thu, 19 Apr 2012 07:37:41 GMT
Server: Apache/2.2.21 (Win64) PHP/5.3.8
Last-Modified: Sat, 03 Feb 2007 11:17:50 GMT
ETag: "6d0000000400e4-5b415f-428909c5e7a6b"
Accept-Ranges: bytes
Content-Length: 5980511
Content-Type: audio/mpeg

那么,当只使用一个连接来下载mp3时,我如何才能回到android 2.3.3中的上一个功能?

感谢。

编辑:我可以看到MediaPlayer基于networkstate,实际上,取决于连接速度:wifi或3G MediaPlayer使用这两个连接,但EDGE只使用一个。

我认为它可以解释为什么许多用户在音乐开始之前谈论长缓冲时间。

1 个答案:

答案 0 :(得分:0)

您好我遇到了同样的问题,我试图只为第一次连接发送数据。

GET /stream/test.mp3 HTTP / 1.1 主持人:192.168.30.113 连接:保持活力 User-Agent:stagefright / 1.2(Linux; Android 4.0.3) Accept-Encoding:gzip,deflate

跳过第二个连接。

它适合我 希望它有所帮助