Аудио не загружается в аудио-тег HTML

#html #audio #html5-audio

#HTML #Аудио #html5-аудио

Вопрос:

Я тестирую HTML-тег audio.

И это работает в моей среде тестирования, но по какой-то причине не в моей рабочей среде.

Я просто использую: <audio src="/sandbox/test.mp3" controls="controls"></audio> .

Сайт тестирования находится на Windows, а производственный сайт — на Linux, но, я думаю, это должно иметь какое-то значение.

Я могу загрузить дорожку, поэтому я знаю, что она находится в нужном месте.

Рабочий URL-адрес:http://pieterhordijk.com/sandbox

Как указано, точно такой же код работает на testsite.

У кого-нибудь есть идеи относительно того, почему он не загружает мой звук?

PS

Я тестирую, используя:

Chrome 11.0.696.68

Редактировать

Теперь я нахожусь в Chrome 13 (сборка Canary), и загружается MP3.

Но WAV загружается только в первые секунды.

Комментарии:

1. С другой стороны, вы должны убедиться, что ваши аудиофайлы vorbis имеют расширение .oga и подаются как audio / ogg.

2. @Shadow: хммм. хорошо. Не знал этого. Могу ли я просто переименовать файл или это совершенно другой формат?

3. Вы просто переименовываете файл. Однако я заметил другую проблему с вашими файлами ogg. Они не содержат звуковую дорожку vorbis и вместо этого содержат flac. Ваши файлы wav должны быть закодированы в файлы oga с rarewares.org/ogg-oggenc.php

4. @Shadow. спасибо за твою помощь, приятель. Я конвертировал его онлайн @ oggconvert.com . Я скачаю кодировщик и сделаю это сам, если вы скажете, что это неправильный формат.

Ответ №1:

http://pieterhordijk.com/sandbox/test.mp3 подается как audio / mpeg, что хорошо. Однако, когда я загружаю его с Opera, он по какой-то причине оказывается поврежденным, и я не могу добавить его в плейлист Foobar или что-либо еще. Но он нормально загружается с wget, так что это может быть просто проблема с Opera или что-то необычное, что сервер предоставляет Opera. Загрузка mp3 с помощью <audio>, конечно, в любом случае не работает в Opera, поскольку Opera не поддерживает этот формат.

http://pieterhordijk.com/sandbox/test.ogg подается как audio / ogg, что хорошо. И теперь он также содержит vorbis вместо flac (поскольку вы это исправили). Оно не будет воспроизводиться в Opera удаленно, но воспроизводится нормально, если я загружаю файл и открываю его в Opera локально. Он также отлично воспроизводится в Foobar.

http://pieterhordijk.com/sandbox/test.oga подается с неправильным типом mime. Оно подается как текстовое / обычное, но должно подаваться как audio / ogg (вы можете исправить это в .htaccess). Но он содержит vorbis и воспроизводится с помощью Foobar. Опять же, это не будет воспроизводиться удаленно в Opera. Но, если я скачаю его и открою локально в Opera, он воспроизводится без проблем.

http://pieterhordijk.com/sandbox/test .wav подается как audio / x-wav, что хорошо. Но файл wav неприемлем для потоковой передачи, поскольку его размер составляет 30,9 МБ, и воспроизведение может быть ужасным, если он не был полностью извлечен. По крайней мере, этот файл воспроизводится в Opera удаленно.

Однако на моем сайте все работает нормально. Смотрите http://shadow2531.com/opera/testcases/plugins/temp/peehaa/test_audio_vorbis.html. Ваш oga-файл воспроизводится в Opera без проблем, и он должен вернуться к mp3 для пользовательских интерфейсов, которые не поддерживают Vorbis.

С учетом сказанного, похоже, что это связано с тем, как ваш сервер обслуживает файлы. Единственное отличие, которое я заметил, заключается в том, что ваш сервер отправляет заголовок Vary: Accept-Encoding. Но не уверен, является ли это причиной или нет.

Теперь, как вы увидите на моей тестовой странице, он использует:

 <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <p>
            <audio controls width="300">
                <source src="test.oga" type='audio/ogg; codecs="vorbis"'>
                <source src="test.mp3" type="audio/mpeg">
                <a href="test.oga">test.oga</a>
                <a href="test.mp3">test.mp3</a>
            </audio>
        </p>
    </body>
</html>
  

Вот как вы можете вернуться к другим типам. Смотрите http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#the-source-element для получения дополнительной информации. Если mp3 и vorbis недостаточно, вы можете добавить аудио aac в контейнер mp4 / m4a в качестве другого запасного варианта.

Комментарии:

1. Это MP3. Я загрузил и протестировал на нескольких компьютерах (все Windows). И оно загружается на моем локальном компьютере для разработки, но не на моем рабочем компьютере.

2. можете ли вы добавить свои комментарии по поводу oggenc и audio / ogg к вашему ответу?

3. @PeeHaa. Здесь будет сделано немного позже.

4. @PeeHaa. Ну вот и все. Надеюсь, это немного поможет.

5. Вау, спасибо за тщательное тестирование! Я знаю о резервных вариантах. Я просто разделил его, чтобы иметь возможность легко видеть, что на самом деле происходит, в целях тестирования. Вам выражается особая благодарность ( pieterhordijk.com/sandbox/html5-audio-api )! 🙂

Ответ №2:

У меня была похожая проблема, по какой-то причине не загружались локальные файлы MP3, решением для меня было использовать файлы OGG, и все работало. Моей локальной системой разработки является Linux / apache2, и я тестировал с Firefox 8 и Chrome 15. Аудио-тег действительно работал с удаленными файлами MP3 и OGG, хотя я не знаю, почему они не работали локально, опять же, OGG работал локально.