2010-08-03 5 views
10

Ich habe Probleme bei der Bereitstellung von Videos von meinem Dev-Server, die in Mobile Safari abgespielt werden. Mein Dev-Server unterstützt nicht den Header 'Accept-Ranges' und nachdem ich ein paar Foren gelesen habe, habe ich festgestellt, dass das mein Problem sein könnte. Here is an example forum posting saying just that.Benötigt iPhone/iPad Safari "Accept-Ranges" Header für Video?

Ist das korrekt? Benötigt mobile Safari den Accept-Ranges-Header? Kann jemand mich auf irgendeine Apple-Dokumentation verweisen, die das tatsächlich angibt?

Danke.

Antwort

14

Ich fand einige Apple-Dokumentation, die besagt, dass es tatsächlich das für Video benötigt.

HTTP-Server Mediendateien für iOS-Hosting muss Byte-Bereich Anforderungen unterstützen, die iOS verwendet Random Access in der Medienwiedergabe durchzuführen. (Byte-Bereich-Unterstützung wird auch als Inhaltsbereich- oder Teilbereichs- -Unterstützung bezeichnet.) Die meisten, aber nicht alle HTTP 1.1-Server unterstützen bereits Bytebereichsanforderungen.

Wenn Sie nicht sicher sind, ob Ihr Medienserver Byte-Range- -Anforderungen unterstützt, können Sie die Terminal-Anwendung in OS X öffnen und verwenden Sie das curl Befehlszeilentool ein kurzes Segment aus einer Datei auf dem Server herunterladen :

curl --range 0-99 http://example.com/test.mov -o /dev/null

Wenn das Tool meldet, dass es 100 Bytes heruntergeladen haben, behandelt der Medienserver richtig die Byte-Range-Anfrage. Wenn es die gesamte Datei herunterlädt, müssen Sie möglicherweise den Medienserver aktualisieren .

Source: Apple Documentation

0

Die answer above ist hilfreich, aber nicht antwortet tatsächlich die Frage, die gestellt wurde.

Gemäß der HTTP RFC ist der Accept-Ranges-Header optional, auch wenn Byte-Range-Anforderungen unterstützt werden.

Die dokumentierte Curl Check impliziert jedoch, dass die Antwort ist keine: iOS erfordert nicht die Accept-Ranges-Header für Video, erfordert aber Byte-Bereich Unterstützung mit teilweise Inhalt (206) Antworten.

Haftungsausschluss: Ich habe es nicht auf einem tatsächlichen Gerät überprüft.

+0

Ich habe es auf mehreren tatsächlichen Geräten überprüft - wenn ich die Byte-Bereich-Unterstützung auf meinem Server deaktivieren, weigert sich jeder Safari-Browser, das Video abzuspielen. – Michael

+0

Ich denke, dieser Teil wurde bereits eingerichtet, aber die Frage ist, ob es Accept-Ranges Header (die nicht von der RFC benötigt werden, um Byte-Range-Anforderungen zu funktionieren) benötigt. – amichair

+0

Ich habe versucht, Ihnen mit tatsächlichen Gerätetests zu helfen, aber OK. – Michael