シンプルなRESTサービスを作成して、シークサポートでオーディオファイルを提供しようとしています。私はジャージーに基づいています。この例を使用してい : https://github.com/aruld/jersey-streaming/tree/jersey2Spark javaサービングmp3ファイル(シークとダイナミック)
これは非常に単純な例ですが、それはGETとHEADブラウザで使用要求を、Rangeヘッダを探し、206プラスアーカイブで応答するリッスン要求されたスライス(バイト範囲で)。 ここでキャッチするのは、私がspark java(組み込みの桟橋サーバーを備えた小さなフレームワーク)にこれを書き直していることです。
すべてのことがOKであるようです。ブラウザはGETを送信し、それに応じてサーバが応答を生成します...プレーヤーは何もロードしたり再生したりしません。要求が行われ、レスポンスヘッダが完璧です:
要求:
Host: localhost:4567
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Range: bytes=0-
Connection: keep-alive
応答:
Accept-Ranges: bytes
Content-Length: 1048577
Content-Range: bytes 0-1048576/5563904
Content-Type: audio/mp3
Date: Sat, 20 Aug 2016 05:41:23 GMT
Last-Modified: Sat Aug 20 01:12:37 BRT 2016
Server: Jetty(9.3.6.v20151106)
sasd
一つ私が気づいた事はそれがこの要求の転送が終了したことがないらしいです。サーバーを閉じると、転送は0,03KB(常に)で終了します。コンセプトのアプリのコードの
私の証明: http://pastebin.com/xjkLne7E