iOS5 Mobile Safari serveert mp3's met behulp van php

Ik host een site voor een fanfare waar ik voor werk. Ik heb een volledig functionerende ledensectie met login. Ik heb een .htaccess-map die mijn mp3's beschermt tegen hot/direct-linked. Ik kan de bestanden laten spelen in Safari, Chrome en Firefox, maar niet op mijn iPhone!

Ik dien de inhoud door headers in een php-bestand te gebruiken, die op hun beurt een html5-audiotag maken voor de inhoud. Ik heb de readfile() in PHP geprobeerd zonder succes.

php-bestand hieronder: (minus de beveiligingscontrole)

$_GET['f'] = "privatefolder/" . $_GET['f'];
$filename = $_GET['f'];
$filesize = @filesize($filename);

$len = strlen( $filename );
$shortlen = $length - 1;
header( 'Content-Range: bytes 0-'.$shortlen.'/'.$len);

header("Last-Modified: ".filemtime($filename));
header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg");//mpeg
header("Etag: W5M0MpCehiHzreSzNTczkc9d");
header("Content-Description: {$filename}");
header("Content-length: {$filesize}");
header("Content-Disposition: filename=button.mp3");
header("X-Pad: avoid browser bug");
header("Cache-Control: no-cache");
header("Connection: close");

echo "

Deze code werkt goed in alle hoofdbrowsers, maar op mijn iPhone wordt Mobile Safari vastgelopen en loopt vast bij het openen van een pagina!

Wat mis ik? Ik ga ervan uit dat het een header-probleem is en de manier waarop quicktime 'downloads/streams' is. Ik vecht dit al 2 weken, probeerde elke oplossing die ik kon vinden! Help alsjeblieft!!!

* slechts een kanttekening: ik heb de pagina in de Opera Mini Browser geopend en verzendt de link naar Safari en speelt deze snel af zonder problemen?!?!? dus ik weet dat het mogelijk is!

2

2 antwoord

Het werkt op iOS4, het mislukt op iOS5. Ik denk dat de extensie "mp3" moet zijn om als mp3 te werken ...

1
toegevoegd

Je kunt geen headers verzenden waardoor het lijkt alsof het een mp3 bestand is en tegelijkertijd HTML bevat. Ik ben geschokt dat het in alle browsers werkt.

Your HTML should be something like where mp3.php has the headers and outputs the contents of the mp3 file.

0
toegevoegd
Bedankt voor het antwoord! Ik probeerde het oorspronkelijk op die manier en om welke reden dan ook werkte het niet. Het lijkt erop dat je je cache moet leegmaken en Safari moet herstarten om het te laten werken. Dus hier is waar ik ben. Die methode werkt prima voor Safari en Chrome, maar niet voor Firefox. Testkoppeling En in Mobile Safari staat dat het bestand niet kan worden gelezen. Ik ben echt niet zo bezorgd om Firefox. Ik dwing meestal een download van deze bestanden naar mijn studenten, maar ik wil echt heel graag dat dit werkt in Mobile Safari op een iPhone. Om het even welke ideeën?
toegevoegd de auteur JazzyB, de bron