Воспроизвести звук через событие JavaScript в приложении iOS 5 HTML5 - PullRequest
4 голосов
/ 22 октября 2011

Разработка приложения HTML 5 на новом iPad Mobile Safari iOS 5, которое отображает запрос пользователя при получении «отправки». Чтобы привлечь внимание пользователя, у нас есть звук, который звучит так, когда вызывается функция оповещения:

snd.src = snd.src;
snd.play();

К сожалению, Apple изменила методологию воспроизведения звуков. Кто-нибудь знает, есть ли обновления в iOS 5, которые это исправляют?

* Провел много исследований и уже знал, что старый «взлом» в iOS 3 больше не работает.

1 Ответ

14 голосов
/ 22 октября 2011

Звуки требуют пользовательского ввода в iOS5. Вы можете инициализировать звук с помощью «невидимой» кнопки, которая исчезает после одного нажатия при инициализации вашего приложения. После срабатывания вы сможете набрать snd.play() программно. Это своего рода обман, но, надеюсь, это поможет!

Javascript:

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {

    document.write('<a id="init" ontouchstart="javascript:sndInit();"></a>');

    function sndInit(){
    snd.play();
    snd.pause();
    document.getElementById('init').style.display = 'none';
    }
}

CSS:

<style>
    #init {
        position: absolute;
        margin-right: 0px;
        margin-left: 0px;
        margin-top: 0px;
        margin-bottom: 0px;
        z-index: 1000;
    }
</style>

Также у Реми Шарпа есть несколько советов по работе со звуковыми спрайтами ЗДЕСЬ .

...