私の問題は、新しいアンドロイド ICS MediaPlayer が 2 つのステップで音楽をダウンロードするようになったことです。
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 のダウンロードに 1 つの接続しか使用されていなかったときに、Android 2.3.3 の以前の機能に戻すにはどうすればよいですか?
ありがとう。
編集: MediaPlayer はネットワーク状態に基づいていることがわかります。実際には、接続の速度に応じて、wifi または 3G MediaPlayer はこれら 2 つの接続を使用しますが、EDGE では 1 つしか使用しません。
多くのユーザーが、音楽が始まる前の長いバッファリング時間について話している理由を説明できると思います。