2012-03-30 2 views
5

Уважаемые разработчики HTML5,HTML5 аудио не будет воспроизводиться на мобильных устройствах

У меня возникли проблемы с этим звуком HTML5 ... Итак, давайте вскочим на него.

ap = "<audio width='200' height='30' preload='auto' controls autobuffer>"; 
ap += "<source src='util/blob_audio.php?i=" + w + "&ogg=1' type='audio/ogg' />"; 
ap += "<source src='util/blob_audio.php?i=" + w + "&mp3=1' type='audio/mpeg' />"; 
ap += "</audio>"; 

Я генерирую его в JavaScript и метод возвращает его при необходимости. Думаю, мне не стоит упоминать, что переменная «w», это параметр (YouDon'tSay), и все работает отлично.

Все должно быть в порядке, не так ли? Они появляются на рабочих столах, но у них возникают проблемы с мобильными устройствами (я тестировал iPad2, планшет Android 3.2.1, смартфон Android 2.3.6).

Это на iPad 2: «Невозможно воспроизвести аудиофайл». в элементе. И Дроид показывает звуковой элемент по умолчанию, но без регулировки громкости, визуально он говорит, что он играет - прыгает с самого начала до конца.

РНР заголовков выглядит следующим образом (в blob_audio.php) (мы хранение аудио, как сгустки в БД [не спрашивайте меня, почему, это была не моя идея]):

header("Content-Type: audio/ogg"); // this is inside of a condition, this is the "ogg" part of it 
header('Content-Length: ' . $length); 
header('Content-Disposition: inline'); 
header('X-Pad: avoid browser bug'); 
header('Cache-Control: no-cache'); 

Это работает отлично, поскольку все работает на настольных компьютерах.

Я думал, что, возможно, эти форматы (mp3, ogg) неверны (не поддерживается кодеком), закодированные для процессоров архитектуры ARM. Может ли это случиться в случае mp3?

Мысль? Кто угодно? =)

Спасибо, Бен

+0

У нас есть дебаты, независимо от того, имеет ли это значение или нет, если ваше кодирование является f * cking AVR/VBR/CBR в MP3. Это имеет значение? В 2012? – benqus

ответ

13

Итак, у нас это получилось.=)

Так вот факты (см ниже перечисленных):

Проблема в iStuffs -> Мы работаем над защищенное соединение (HTTPS). Это подрывает обработку звука iShit HTML5. Им нужен некоторый «промежуточный сертификат» - возможно, для проверки подлинности или я не знаю - между цепочкой сертификатов сервера. Таким образом, эта вещь не работает на нашем тестовом сервере через SSL. Кто знал ... Он работает, когда вы развертываете его в обычном режиме. Но, вот идет Android, следите!

Android забавный, поскольку (как описано в документе -_O) Droid НЕ поддерживает любые медиаформаты через SSL ниже версии 3.1. Это полная «навязчивость с человечеством» ... Я не понимаю, почему такая проблема заключается в том, чтобы создать систему, способную воспроизводить любые мультимедийные файлы через f * cking SECURE connection в 21 веке ... Это должно быть несколько законов об авторском праве sh * t, которые мне снова нужно рвать ...

В случае, если вы хотите знать, что мы сделали для решения этой проблемы: Мы выяснили, что если мы ДЕЙСТВИТЕЛЬНО хотим сделайте наше приложение кросс-браузером и «кросс-устройством совместимым» (не знаю, правильно ли это для него, но я уверен, что вы его получите;)), нам нужно «вынуть» аудио (мульти/мультимедиа) из под SSL. Итак, для простоты мы создали простой HTTP-поддомен (отдельную папку в иерархии) для наших аудиофайлов (нам нужен только звук к настоящему времени) и сделать его доступным через этот поддомен + аутентификацию/проверку через файл сценария , Итак, все идет под HTTPS, но мульти/мультимедиа раздельно по HTTP.

Хорошо работает на любом устройстве f * cking в любое время. Я знаю, что это «более крупное» решение, но это наиболее «реализуемое» для любого устройства, на котором мы тестируем эти вещи.

Надеюсь, это помогло кому-то! =) Приветствия!

+0

Я должен победить вою. Если бы я мог сделать это дважды. 1, потому что ваш ответ полезен и 2, потому что вы делаете laugth: D – leojg

0

Вы должны использовать AAC instead of MP3.

Похоже, что ваш контентный тип жестко закодирован для аудио/ogg - вы хотите убедиться, что он настроен правильно при запросе MP3/M4A.

+0

Итак, как iPad, так и Android планшетные компьютеры поддерживают этот mp3, но AAc предназначен только для iPad. Основанный на посещении www.html5test.com с таблетками, mp3 остается в настоящее время. Извините, жестко закодированная вещь ogg находится в состоянии. Вы можете увидеть параметры GET в части javascript моего вопроса «ogg = 1» и «mp3 = 1». Поэтому мы проверяем форматы на основе этого. – benqus

0

Нет атрибута "autobuffer". Вот возможные атрибуты, согласно документации:

src 
crossorigin 
preload 
autoplay 
mediagroup 
loop 
muted 
controls 

Атрибут type дает тип медиа-ресурса, чтобы помочь агенту пользователя определить, является ли он может играть этот медиа-ресурс, перед загрузкой его. Если указано, его значение должно быть допустимым типом MIME. Параметр codecs, что определенные типы MIME определяют, может быть необходимо точно указать, каким образом кодируется ресурс (согласно [RFC4281])

В следующем списке приведены некоторые примеры того, как использовать параметр codecs= MIME в атрибуте type , действительный не только для аудио, но и для видеофайлов.

H.264 Constrained baseline profile video (main and extended video compatible) level 3 and Low-Complexity AAC audio in MP4 container 
<source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
H.264 Extended profile video (baseline-compatible) level 3 and Low-Complexity AAC audio in MP4 container 
<source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'> 
H.264 Main profile video level 3 and Low-Complexity AAC audio in MP4 container 
<source src='video.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'> 
H.264 'High' profile video (incompatible with main, baseline, or extended profiles) level 3 and Low-Complexity AAC audio in MP4 container 
<source src='video.mp4' type='video/mp4; codecs="avc1.64001E, mp4a.40.2"'> 
MPEG-4 Visual Simple Profile Level 0 video and Low-Complexity AAC audio in MP4 container 
<source src='video.mp4' type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'> 
MPEG-4 Advanced Simple Profile Level 0 video and Low-Complexity AAC audio in MP4 container 
<source src='video.mp4' type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"'> 
MPEG-4 Visual Simple Profile Level 0 video and AMR audio in 3GPP container 
<source src='video.3gp' type='video/3gpp; codecs="mp4v.20.8, samr"'> 
Theora video and Vorbis audio in Ogg container 
<source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'> 
Theora video and Speex audio in Ogg container 
<source src='video.ogv' type='video/ogg; codecs="theora, speex"'> 
Vorbis audio alone in Ogg container 
<source src='audio.ogg' type='audio/ogg; codecs=vorbis'> 
Speex audio alone in Ogg container 
<source src='audio.spx' type='audio/ogg; codecs=speex'> 
FLAC audio alone in Ogg container 
<source src='audio.oga' type='audio/ogg; codecs=flac'> 
Dirac video and Vorbis audio in Ogg container 

См http://www.whatwg.org/specs/web-apps/current-work/#the-audio-element для более подробной информации.

Смежные вопросы