HTML5 <audio> Safari na żywo vs nie

Próbuję osadzić element audio HTML5 wskazujący na dane MP3 lub OGG podawane przez plik PHP. Kiedy przeglądam stronę w Safari, pojawiają się kontrolki, ale interfejs użytkownika mówi „Transmisja na żywo”. Po kliknięciu odtwarzam dźwięk rozpoczyna się zgodnie z oczekiwaniami. Jednak po jego zakończeniu nie mogę rozpocząć gry ponownie, klikając przycisk Odtwórz. Nawet użycie API JS w elemencie audio i ustawienie currentTime na 0 kończy się niepowodzeniem z wyjątkiem błędu indeksu.

Podejrzewałem, że problem stanowią nagłówki ze skryptu PHP, szczególnie brakuje długości treści. Ale tak nie jest. Nagłówki odpowiedzi zawierają odpowiednią długość treści, aby wskazać, że dźwięk ma skończony rozmiar. Ponadto wszystko działa zgodnie z oczekiwaniami w Firefoksie 3.5+. Mogę wielokrotnie klikać na elemencie audio, aby usłyszeć powtórkę dźwięku.

Jeśli usunę skrypt PHP z równania i udostępnię statyczną kopię pliku MP3, wszystko działa poprawnie w Safari.

Czy to oznacza, że ​​Safari traktuje adresy URL src audio parametrami zapytania inaczej niż adresy URL, które ich nie mają? Czy ktoś ma szczęście, żeby to zadziałało?

Moja prosta strona przykładowa to:

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <audio controls autobuffer>
      <source src="say.php?text=this%20is%20a%20test&format=.ogg" />
      <source src="say.php?text=this%20is%20a%20test&format=.mp3" />
    </audio>
  </body>
</html>

Nagłówki HTTP ze skryptu PHP:

HTTP/1.x 200 OK
Date: Sun, 03 Jan 2010 15:39:34 GMT
Server: Apache
X-Powered-By: PHP/5.2.10
Content-Length: 8993
Keep-Alive: timeout=2, max=98
Connection: Keep-Alive
Content-Type: audio/mpeg

Nagłówki HTTP z bezpośredniego dostępu do plików:

HTTP/1.x 200 OK
Date: Sun, 03 Jan 2010 20:06:59 GMT
Server: Apache
Last-Modified: Sun, 03 Jan 2010 03:20:02 GMT
Etag: "a404b-c3f-47c3a14937c80"
Accept-Ranges: bytes
Content-Length: 8993
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: audio/mpeg

Próbowałem również kodować nagłówek Accept-Ranges także do skryptu, ale nie miałem szczęścia.

questionAnswers(4)

yourAnswerToTheQuestion