У меня есть система, которая принимает загрузки MP3 в BlobStore, и теперь я хотел бы встроить их в проигрыватель HTML5. Проблема в том, что я не могу получить ссылку непосредственно на файл MP3. Я использовал images.get_serving_url(blob_key)
для отличного эффекта, но, похоже, нет эквивалента для аудиофайлов.
В документации объясняется, как создать обработчик, который обслуживает любой файл из хранилища, с помощью двух слегка отличающихся подходов: BlobstoreDownloadHandler и Пример приложения
Оба имели одинаковый результат для меня, который вы можете увидеть здесь: http://testgroovebug.appspot.com/v1/audioserve?resource=AMIfv96sdSSVnSIVZXGyeeGDs3ZjbH7dy4mZmeuU_bUPYxxPu9KHrgO-VC4cVxAAYE-MsZmyuBfVRmFHAnlxLxQxhLMpvfBbCRNPjuriSIBCwO5dLTVpo3ncOL7uQI8VBo8KddW19gtUUU_IUr2AN_Er6BZxTwnmvg
Предполагается, что это песня продолжительностью более 3 минут, но обычно проходят только первые несколько секунд. Обновление страницы случайным образом изменит количество потоковой передачи (иногда вам повезет и 10 секунд игры!).
HTTP-заголовок (полученный с помощью curl) выглядит следующим образом:
< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Expires: Fri, 01 Jan 1990 00:00:00 GMT
< Content-Type: audio/mpeg
< Date: Wed, 19 Oct 2011 18:48:52 GMT
< Server: Google Frontend
< Transfer-Encoding: chunked
В конечном счете, я хочу использовать какой-нибудь встроенный плеер. Тем не менее, следующий код дает большой X в Firefox.
<audio src="..." controls="controls">
</audio>