Skip to content

Latest commit

 

History

History
138 lines (84 loc) · 5.79 KB

ru_voice.md

File metadata and controls

138 lines (84 loc) · 5.79 KB

Voicelink

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="[слово]"

обязательный атрибут - подсказка в хелпбаре самсунга или в "пузыре" Примечание: "пузырь" - блок с группированными подсказками.

data-voice-group="[название_группы]"

опциональный атрибут - группа для подсказки. Если группа есть то элемент показывается в пузыре. Если нету в хелпбаре самсунга.

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

data-voice-force-visible="[true]"

Показывает элемент в хелпбаре, даже если он скрыт и useHidden=false

Настройки

В хэше options можно задавать класс селектор для голосовых ссылок.

options={
  selector: '.voicelink',//селектор для поиска
  moreText: 'More',//текст для показа "пузыря"
  eventName: 'voice',//событие которое отправляет элемент
  useHidden: false//фильтровать невидимые ссылки
}

$('#scene').voiceLink(options);

options можно не задавать тогда настройки встанут по умолчанию, какие описаны выше

$('#scene').voiceLink();
$$voice.setup(newDefaults);//задает новые умолчания

Методы

$$voice.say(phrase);

Эмулирует произнесение фразы.

$$voice.enabled();

Определяет поддерживается ли голосове управление устройством. Возвращает boolean

$$voice.setup(options);

Задает умолчания, в options - хэш настроек

$$voice.save();

Сохраняет текущее состояние (контейнер и options) в стек.

$$voice.restore();

Восстанавливает последнее сохраненное состояние в стеке и удаляет его из стека

$$voice.fromServer(title,callback);

Распознавание голоса с помощью сервера самсунга, title - текст который видит пользователь, callback - функция которая вызывается после успешного распознавания текста, принимает в себя результат. В браузере выводится prompt сообщение.

Пример:

$$voice.fromServer("скажите слово для поиска",function(result){
   //если юзер сказал "привет мир" result = "привет мир"
});

$$voice.pause();

Приостанавливает работу плагина.

$$voice.resume();

Возобновляет работу плагина.

$$voice.refresh();

Перезапускает voiceLink() с текущими параметрами. Используется часто для того чтобы поддерживать актуальное состояние голосвых подсказок. Если активная кнопка с голосовой подсказкой перестала быть видимой, то фраза исчезает из хелпбара и не работает, если не задан атрибут data-voice-force-visible или флаг $$voice.useHidden

Важно

Событие voice распространяется вверх по DOM дереву, таким образом если вложить одну голосовую ссылку в другую и не вызвать e.preventDefault() при срабатывании дочерней ссылки родительская тоже получит событие.