Mobile Safariでストリーミングオーディオにスクラバーがない場合があるのはなぜですか?


3

通常、iPhoneのSafariでmp3へのリンクをクリックすると、次のようになります。

スクラバー

しかし、時々、スクラバーバーのないこのように見えます:

スクラバーなし

これは、ファイル間の違いについて何を示していますか?サーバー構成の問題に関連していますか?

回答:


4

違いは、定義されたコンテンツの長さを持つ静的ファイルと、shoutcastストリームまたはファイルでコンテンツの長さを提供しなかったサーバーである必要があります。

プレーヤーがファイルの大きさを知らない場合、メタデータ(特に曲の長さ)を収集するための最後を取得できず、シークのためにスクラバーを提示できません。

[編集]
cURLヘッダー出力:

$ curl -I "http://demo.ekklesia360.com/judas-and-pilate.mp3"
HTTP/1.1 200 OK
Date: Tue, 29 Mar 2011 21:59:15 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 29 Mar 2011 16:25:33 GMT
ETag: "8b30001-ab4caa-49fa182643940"
Accept-Ranges: bytes
Content-Length: 11226282
Connection: close
Content-Type: audio/mpeg

$ curl -I "http://flex.ekk360.com/judas-and-pilate.mp3"
HTTP/1.1 200 OK
Server: Apache/2.2
Content-Type: audio/mpeg
Last-Modified: Tue, 29 Mar 2011 16:27:10 GMT
Content-Length: 11226282
Date: Tue, 29 Mar 2011 21:59:20 GMT
Age: 0
Connection: keep-alive
Via: 1.1 varnish 172.17.0.138

後者のファイル(フレックス経由)で、「Accept-Ranges」の不足と「Connection」タイプの「keep-alive」に気付きました。

これはそれを教えてくれます。
(1)Safari(/ QuickTime?)は、ID3データを読み取るために、ファイルの最後のバイト範囲要求を発行しない可能性が高い、または;
(2)「接続:キープアライブ」とは、新しいデータがパイプを通過する可能性があることを意味するため、スクラバーはありません。


1
どちらの場合も、それは単なる静的ファイルでしたが、異なるサーバー上にありました。ここで問題のファイルをweb-sniffer.netでユーザーエージェントとしてiPhone Mobile Safariを使用してチェックしたところ、Content-Length 報告されています。
-shanebonham

1
@shaneあなたのwifiの信号強度から、@ vxjはまだ正しいかもしれません。この問題は特定のファイル/サーバーで毎回発生しますか?大きなファイルなので、Safariには長さを取得する時間がなかったので、情報を待つのではなく、ファイルを再生できるようにしたほうがよいでしょう。
ロイックウルフ

各スクリーンショットでファイルのアドレスを明かすことはできますか?
ジェイソンサラズ

それらがどれだったのかはわかりませんが、同等のものがいくつかあります:すべてが正常:demo.ekklesia360.com/judas-and-pilate.mp3スクラバーは表示されません:flex.ekk360.com/judas-and-pilate。 mp3
shanebonham

@Loïcこの特定のプラットフォーム(Rackspace Cloud Sites)でテストしたすべてのファイルで発生します。Rackspace管理対象サーバー、および私がテストした他のサーバー(Amazon S3、Dreamhost)では、すべて問題ありません。
-shanebonham

2

Rackspace Cloud Sitesサポートが提供する回答は次のとおりです。

サーバーはメディアファイルをストリーミングできないため、mp3などのメディアファイルを開くと、ブラウザーまたはデバイス内でプログレッシブダウンロードと呼ばれる方法を使用して再生されます。次の記事では、プログレッシブダウンロードについて説明しています。http//en.wikipedia.org/wiki/Progressive_download

基本的に、メディアプレーヤーはファイルを最初から最後までダウンロードし、ダウンロードしたファイルの一部を再生できます。iOSデバイスは、他の多くのモバイルデバイスと同様に、メモリが制限されているため、内部バッファーがいっぱいになった後にファイルのダウンロードを停止し、使用可能な貴重なRAMを節約します。ダウンロードは停止しますが、デバイスはこれまでにダウンロードしたメディアファイルの一部を再生し続けます。デバイスがダウンロードされたデータの終わりに近づくと、再生が中断されないように、メディアファイルのダウンロードを再開するために新しいHTTP要求が送信されます。新しいデータのダウンロードが再開されると、バッファがいっぱいになるとデバイスが一時停止してサイクルが再び開始されます。

このファイルの場合、このファイルのHTTP応答のヘッダー内に「Accept-Ranges:bytes」が存在しないことからわかるように、システム内のメディアファイルではファイルダウンロードの再開がサポートされていないため、再開ステップは失敗します:

HTTP/1.1 200 OK Server: Apache/2.2
Content-Type: audio/mpeg
Last-Modified: Tue, 29 Mar 2011
16:27:10 GMT Content-Length: 11226282
Date: Tue, 29 Mar 2011 22:00:33 GMT
X-Varnish: 1663119465 1663112299 Age:
73 Connection: keep-alive Via: 1.1
varnish 172.17.0.138 X-Cache: HIT

「Accept-Ranges:bytes」の詳細については、セクション14.5を参照してください。http//www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

このHTTP要求はApacheによって処理されず、Media Acceleratorクラスター内のキャッシングVarnishサーバーを介して処理されるため、このHTTP要求ではファイルの再開はサポートされていません。ファイルの再開は、Apacheによって本質的にサポートされています。Varnishサーバーによってシステム内にキャッシュされたファイルのリスト、およびMedia Acceleratorの詳細については、http//cloudsites.rackspacecloud.com/index.php/What_is_the_Media_Accelerator_(MA)%3Fをご覧 ください。

HTTP要求がこれらのファイル拡張子のいずれかで終了する場合、HTTP要求はMedia Acceleratorにのみルーティングされます。クエリ文字列がURLの最後に追加された場合、またはURLが別のファイル拡張子に対して作成された場合、次の2つのヘッダーセットからわかるように、HTTP要求はApacheによって処理されます。

$ curl -I
'http://flex.ekk360.com/judas-and-pilate.mp3?1'
HTTP/1.1 200 OK Server: Apache/2.2
Content-Type: audio/mpeg Date: Tue, 29
Mar 2011 21:41:56 GMT Accept-Ranges:
bytes Connection: Keep-Alive
Set-Cookie:
X-Mapping-hpadogcb=018693E96D995C67FDE4A82FC7761170;
path=/ Last-Modified: Tue, 29 Mar 2011
16:27:10 GMT Content-Length: 11226282

$ curl -I
'http://flex.ekk360.com/judas-and-pilate.mp_'
HTTP/1.1 404 Not Found Server:
Apache/2.2 Content-Type: text/html;
charset=iso-8859-1 Date: Tue, 29 Mar
2011 22:12:29 GMT Transfer-Encoding:
chunked Connection: Keep-Alive
Set-Cookie:
X-Mapping-hpadogcb=381D7664F27DBFFB6452A51D70DEDB28;
path=/

このファイルをサーバーから適切にストリーミングするには、デバイスで「http://flex.ekk360.com/judas-and-pilate.mp3?1」などのURLを使用することにより、Media Acceleratorをバイパスする必要がありますまたは、ファイルの名前を変更し、カスタムmimeタイプをサイトに追加して、デバイスがメディアプレーヤーでファイルを開くようにします。別の方法は、Cloud FilesやAmazon S3などのCDNを介してファイルをホストすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.