jQuery плагин для работы с голосовым упралвением в smart tv.
Принцип работы: на элементах с указанным классом voicelink
в атрибуте data-voice
указывается фраза, которую должен произнести юзер.
После произнесения фразы заданной в атрибуте data-voice
элемент отправляет событие voice
.
Плагин генерирует нативный хелпбар голосового управления и добаляет в body свой который может быть вызван фразой "Еще" (фраза может быть измерена настройками плагина)
В браузере плагин эмулирует голосовое управление генерируя дополнительный блок с кнопками с досупными фразами.
Юзер говорит "Назад" - элемент #backVoiceLink
отправляет событие voice
html:
<div id="backVoiceLink" class="voicelink" data-voice="Назад" data-voice-group="Навигация"></div>
js:
SB.ready(function(){
$('#scene').voiceLink();
$('#backVoiceLink').bind('voice', function(){
//юзер сказал "Назад"
});
});
обязательный атрибут - подсказка в хелпбаре самсунга или в "пузыре" Примечание: "пузырь" - блок с группированными подсказками.
опциональный атрибут - группа для подсказки. Если группа есть то элемент показывается в пузыре. Если нету в хелпбаре самсунга.
data-voice-hidden="[true]"
опциональный атрибут - показывает что слово произнести можно, но подсказка не будет нигде отображаться. Поведение зависит только от того пустое значение или нет, т.к. в 11 тв нет возможности сохранять $().data(). Пример
data-voice-hidden="true" = data-voice-hidden="abc" = data-voice-hidden="1" = data-voice-hidden="false" = true
data-voice-hidden="" = false
Показывает элемент в хелпбаре, даже если он скрыт и useHidden=false
В хэше options можно задавать класс селектор для голосовых ссылок.
options={
selector: '.voicelink',//селектор для поиска
moreText: 'More',//текст для показа "пузыря"
eventName: 'voice',//событие которое отправляет элемент
useHidden: false//фильтровать невидимые ссылки
}
$('#scene').voiceLink(options);
options
можно не задавать тогда настройки встанут по умолчанию, какие описаны выше
$('#scene').voiceLink();
$$voice.setup(newDefaults);//задает новые умолчания
Эмулирует произнесение фразы.
Определяет поддерживается ли голосове управление устройством. Возвращает boolean
Задает умолчания, в options - хэш настроек
Сохраняет текущее состояние (контейнер и options) в стек.
Восстанавливает последнее сохраненное состояние в стеке и удаляет его из стека
Распознавание голоса с помощью сервера самсунга, title - текст который видит пользователь, callback - функция которая вызывается после успешного распознавания текста, принимает в себя результат. В браузере выводится prompt сообщение.
Пример:
$$voice.fromServer("скажите слово для поиска",function(result){
//если юзер сказал "привет мир" result = "привет мир"
});
Приостанавливает работу плагина.
Возобновляет работу плагина.
Перезапускает voiceLink() с текущими параметрами. Используется часто для того чтобы поддерживать актуальное состояние голосвых подсказок.
Если активная кнопка с голосовой подсказкой перестала быть видимой, то фраза исчезает из хелпбара и не работает, если не задан атрибут data-voice-force-visible
или флаг $$voice.useHidden
Событие voice распространяется вверх по DOM дереву, таким образом если вложить одну голосовую ссылку в другую и не вызвать e.preventDefault() при срабатывании дочерней ссылки родительская тоже получит событие.