2013-12-18 3 views
0

Я настраиваю пользовательские элементы управления, чтобы «играть» и «отключать/включать» аудио-элемент HTML5.Отключение/развязка HTML5 Audio с помощью jQuery

Следующий код работает, как ожидается, в Chrome:

$(document).ready(function() { 
var audioPlayer; 

function init(){ 
    audioPlayer = $('audio')[0]; 
} 

function startPlaying(){ 
    $('button#play').hide(); 
    audioPlayer.play(); 
} 

function toggleMute(){ 
    if(audioPlayer.muted == false){ 
     audioPlayer.muted = true; 
     $('button#mute').addClass('muted'); 
    } 
    else{ 
     audioPlayer.muted = false; 
     $('button#mute').removeClass('muted'); 
    } 
} 

init(); 
$('button#play').on('click', startPlaying); 
$('button#mute').on('click', toggleMute); 

});

Однако в мобильном Safari (IOS 5), то первым нажатием на кнопку «Mute» будет успешно работать, по крайней мере линия

$('button#mute').addClass('muted'); 

, который обновляет изображение значка, но это не на самом деле отключить звук. Последующие нажатия кнопки «mute» ничего не делают (не отключите звук/отключите звук или, похоже, измените класс).

Как я могу отключить этот переключатель mute/unmute для работы в мобильном Safari?

JS Fiddle

ответ

1

«на IOS устройств, уровень громкости звука всегда находится под физическим контролем пользователя. Свойство объем не устанавливаемое в JavaScript. Чтение свойства тома всегда возвращает 1.»

Похоже, что вы должны использовать аппаратный переключатель. Кажется, что на iPhone переключатель громкости не повлияет на громкость Safaris (по умолчанию на громкость звонка, если звук звучит не воспроизводится, тогда вы можете отрегулировать громкость Safaris), тогда как на iPod переключатель громкости работает. "

https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Using_HTML5_Audio_Video.pdf