Подтвердить что ты не робот

Воспроизведение html5 аудио в Android-браузере

У меня есть javascript, который воспроизводит аудио в браузере, используя тег html5 <audio>. Он отлично работает в браузере iPhone, но не в Android. (Тестирование с использованием желания htc с Android 2.1). Кто-нибудь знает, почему?

Мой код:

   function playHTML5(sound, soundcv){
                // sound = url to m4a audio file
                // soundcv = div in which the audioplayer should go

  var audio = document.createElement('audio');
  audio.src = sound;
  audio.controls = "controls";
  if (currentSound != null){
   soundcv.replaceChild(audio,currentSound);
  } else {
   soundcv.appendChild(audio);
  }
  currentSound = audio;
 }
Кстати, я также пытаюсь увеличить звуковую кнопку, которая появляется в iphone (по умолчанию она довольно маленькая), без везения до сих пор - была бы благодарна за любые идеи!
4b9b3361

Ответ 1

Последний браузер Android в FroYo еще не поддерживает аудио-элемент HTML5. Это не ошибка, а функция, которая еще не реализована. Это может быть в прянике.

Обновление: Браузер Gingerbread имеет аудио-элемент.

Ответ 2

Вот ссылка на ошибку Google Android, которая была подана из-за отсутствия поддержки тега AUDIO в Android. Пожалуйста, проголосуйте за него.

http://code.google.com/p/android/issues/detail?id=10546

Кстати, есть работа, которая позволяет вам воспроизводить изначально MP3 в Android 1.6.. 2.2, вот так:

<video src="test.mp3" onclick="this.play();"></video>

Ответ 3

Я тоже не могу понять. НО, эта тестовая страница, созданная Apple, воспроизводит аудио на HTML5 на Android: http://www.apple.com/html5/showcase/audio

как это сделал яблоко?

Ответ 5

У меня были проблемы с моим Kindle Fire, и я нашел одну маленькую вещь, которая, казалось, исправила ее.

<audio>
  <source src="someclip.mp3" type="audio/mpeg" />
</audio>

Я ошибочно использовал "audio/mp3". Я использую плеер без его собственных элементов управления (используя HTML5/JS).

Ответ 6

Я получил эту работу над проектом, используя trigger.io развертывание на Nexus 7 под управлением Android Jellybean, но звук воспроизводится только в том случае, если я использую абсолютные URL-адреса на данный момент. Я не уверен, что относительный путь еще должен использовать звук из моего проекта, но, надеюсь, это поможет кому-то...

(function() {

    var currentSound;
    // I have a div called "page"
    var soundcv = document.body;

    // This only works for one sound for simplicity sake
    function playSound(sound){

        if (currentSound == null){
            var audio = document.createElement('audio');
            audio.src = sound;
            soundcv.appendChild(audio);
            currentSound = audio;
        }

        currentSound.play();
    }

    // This isn't a real audio file URL - replace it with one of your own
    playSound('http://example.com/example.mp3');
})();

Ответ 7

Я весь день занимался этим, и я, наконец, получил свою работу над своим старым браузером Samsung Droid с веб-игроком Yahoo:

<a href="somefolder/file.mp3"></a>
<script type="text/javascript" src="http://webplayer.yahooapis.com/player.js"></script>

Работает отлично, помещает значок маленькой стрелки рядом с текстом, который вы можете щелкнуть, чтобы воспроизвести свой mp3. Спасибо Yahoo.

Я забыл упомянуть, что аудио не отображается в моем браузере Chrome или Firefox при локальном тестировании. Отлично работает в браузере телефона.

Ответ 8

Я знаю, что это взлом, но он работает везде (насколько я знаю)!

Вы можете использовать элемент видео и конвертировать свои mp3 в файлы mp4 и ogg (ogg для Firefox на Android). Вы также можете настроить его так, чтобы он не отображал никаких незарегистрированных игроков по умолчанию. См. Следующий код:

<video id="audioTest" width="1" height="1" style="top: -100px; left: -100px; position: absolute;" preload >
    <source src="audio.mp4" type="video/mp4">
    <source src="audio.ogv" type="video/ogg">
</video>

Затем вы можете воспроизвести его в своем js-коде, используя:

var audioTest = document.getElementById("audioTest");
audioTest.addEventListener("ended",onSoundComplete,false);
audioTest.play();