включи сири такую песню

Использование Siri для воспроизведения музыки и подкастов

С помощью Siri можно запускать воспроизведение нужных композиций там, где вы хотите их послушать, а также управлять всеми операциями только голосовыми командами.

Использование Siri

Если ваше устройство поддерживает Siri в режиме громкой связи, скажите «Привет, Siri». Если поддержка отсутствует, Siri можно использовать простым нажатием кнопки. Узнайте, как включить Siri на вашем устройстве.

Воспроизведение аудиозаписей дома

Воспроизведение музыки

При наличии подписки на Apple Music можно попросить Siri включить воспроизведение какой-либо композиции из каталога Apple Music или вашей медиатеки, а также воспользоваться такими функциями, как поиск песен по словам из них и добавление музыки в вашу медиатеку.

Если у вас нет подписки на Apple Music, можно попросить Siri воспроизвести музыку из вашей музыкальной медиатеки, включая произведения, приобретенные в iTunes.

В iOS и watchOS можно также использовать Siri для воспроизведения музыки из приложений сторонних разработчиков, поддерживающих SiriKit.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Поиск и воспроизведение музыки

Уже знаете, что хотите послушать? Тогда попросите Siri воспроизвести эту композицию. Или попросите Siri найти песню по словам из нее. Скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Поиск музыки по чартам, популярности и жанру

Siri может помочь найти новую и популярную музыку любого жанра. А также послушать хиты из любого десятилетия. Скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Скажите Siri, чтобы бы вы хотели послушать

Siri может воспроизводить музыку на основе вашей истории прослушивания. А вы можете помочь Siri узнать, какая музыка вам нравится. Скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

Добавление музыки в медиатеку или плейлист

Попросите Siri добавить воспроизводимую песню или альбом, в который она входит, в вашу медиатеку или пользовательский плейлист. Просто скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Прослушивание радио

Настройтесь на свою любимую радиостанцию. Слушайте радио в прямом эфире в приложении Apple Music. Или создайте пользовательскую станцию из своей любимой музыки. Скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Управление воспроизведением

Если вы хотите пропустить песню или послушать ее другую версию, Siri поможет вам в этом. Просто скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Получение сведений о воспроизводимом содержимом

Siri может сказать название воспроизводимой песни, ее исполнителя и много другое. Просто скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Прослушивание подкастов

С помощью Siri можно продолжать слушать свои любимые подкасты, подписываться на новые передачи и управлять воспроизведением.

В iOS и watchOS можно также использовать Siri для воспроизведения подкастов из приложений сторонних разработчиков, поддерживающих SiriKit.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Воспроизведение подкастов и подписка на них

Воспроизводите свой любимый подкаст, слушайте новые подкасты и подписывайтесь на них. Скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Управление воспроизведением

Попросите Siri управлять воспроизведением прослушиваемого подкаста. Просто скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Воспроизведение и контроль звука во всем доме

Используя AirPlay и Siri, можно попросить Siri включить музыку в определенных комнатах дома или в нескольких комнатах одновременно. Можно также одними голосовыми командами управлять тем, что воспроизводится во всем доме.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Включайте воспроизведение там, где хотите

Попросите Siri включить музыку в одной комнате, а потоковый подкаст — в другой. Можно также включить одну и ту же музыку во всем доме. Просто скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Управление воспроизведением

Можно переключать воспроизведение в другие комнаты, управлять воспроизведением и задавать вопросы о том, что воспроизводится. Просто скажите «Привет, Siri», а потом фразу, похожую на один из примеров ниже.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Другие возможности Siri

С помощью Siri также можно выполнять следующие действия.

Функции и команды Siri доступны не для всех языков, стран и регионов. Узнайте, какие функции Siri поддерживаются в вашей стране или регионе.

Источник

Как включать плейлисты Яндекс.Музыки с Siri

Начиная с iOS 14.5 Siri начала поддерживать сторонние музыкальные сервисы. Уже сейчас вы можете сказать ей: «Привет, Siri, включи Сектор Газа Туман в Яндекс Музыке» и все включится!

Но у меня появился резонный вопрос: а как включать плейлисты с помощью Siri? Написал в поддержку, и вот, что получилось.

Дисклеймер: нужно приложение Команды (Shortcuts).

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Итак, вот инструкция:

Чтобы создать шорткат для Siri, например, для запуска личной станции, сделайте следующее:

1. Откройте приложение «Команды». Выберите «Создать команду» → + → «Скрипты» → «Открыть X-Callback URL» со ссылкой **yandexmusic://radio/user/LOGIN?play=true** (где LOGIN — ваш логин) и сохраните. Это откроет очередь радио в плеере и должно забрать аудиофокус у другого приложения.

2. Откройте созданную команду, нажмите значок в правом верхнем углу → «Добавить для Siri» и запишите фразу для запуска.

Чтобы запускать Плейлист дня, замените ссылку из п. 1 на ** yandexmusic://playlist/daily?play=1**

А чтобы запускались ваши любимые треки, используйте ссылку ** yandexmusic://users/LOGIN/playlists/3/LOGIN/?play=1**, заменив LOGIN на ваш логин.

Чтобы запустить свой плейлист, сделайте следующее:

2. Вставьте ссылку в браузер или заметки. Главное – это последние цифры в ссылке.

Например у меня это 1625 https://music.yandex.com/users/ >/playlists/1625

3. Создайте Команду как в самом начале, изменив ссылку:

**yandexmusic://users/LOGIN/playlists/XXXX/LOGIN/?play=1**, где XХХХ – номер желаемого плейлиста.

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

С названием команд придется помудрить, так как не всегда Siri удачно их понимает. Попробуйте назвать Команду «Попкорн». Тогда точно заработает!

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Женская дружба

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

* Слышен приглушенный плач *

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Задачка по арифметике

Муж спрашивает жену-блондинку:

— Если 4 яйца варятся 4 минуты, то сколько будут вариться 8 яиц?

— Это по какой логике?

— По кастрюльной. В нашу кастрюльку для яиц больше 4 штук за раз не влезает.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

В свете последних событий

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Обзор на Грету

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Пора бы уже

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Российские школьники произвели фурор на Международной олимпиаде по физике

Сборная России отлично показала себя на Международной олимпиаде по физике: россияне завоевали 4 золотых и 1 серебряную медаль, а одиннадцатиклассник из Бийского лицея-интерната стал ее абсолютным победителем🥇

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Терапия

Стриптизерши реддита, какая самая необычная история с вами приключилась на работе?

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

С эскортом было, а не со стриптизом.

Был у меня один парень, который водил меня в ресторан раз в месяц. Всегда настаивал, чтобы ничего не было: ни стриптиза, ни касаний, ни секса, просто посидеть с ним несколько часов. И одеваться меня просил как на обычную вечеринку.

Он жутко заикался, настолько сильно, что мог проговаривать одно предложение целую минуту. В обычной жизни он всегда предпочитал доносить мысль письменно, потому что у людей не хватало терпения его выслушивать. А он хотел просто с кем-то поговорить.

По его словам, я была уже его седьмой эскортницей, потому что остальные отказывались встречаться с ним многократно.

Вот почему не нужно близко стоять у железнодорожного тоннеля. Берегите себя

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Счастливым холостякам посвящается

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Ваша йога ерунда, бой без правил, это да

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Должно взлететь

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

А что делал ты в 16 лет?

Матвей Мичков, 16 лет, второй матч за сборную, дебютный гол. лакросс-гол! Лакросс, мать его.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Просто хочу выговориться…

Источник

Как управлять приложением Музыка (Apple Music) при помощи Siri

Как все мы знаем, с помощью виртуального ассистента Siri можно выполнять множество действий на устройствах под управлением iOS и Mac. Помимо всего прочего электронный помощник способен упростить задачу поиска и воспроизведения музыки на гаджете.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Управление приложением Музыка (Apple Music) при помощи команд Siri:

Для начала необходимо убедиться, что опция Siri включена в Настройках. После этого нажимаем и удерживаем кнопку «Домой», пока не появится диалоговое окно;

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Если нам надо включить какую-то песню, альбом или радиостанцию, то мы произносим слово «Включи» и называем исполнителя, трек, пластинку или станцию, которая нас интересует. Если Siri не реагирует на команду, можно уточнить, например, так: «Поставь песню под названием исполнителя »;

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Если хочется послушать треки отдельного исполнителя в произвольном порядке, то даем команду виртуальному секретарю: «Включи песни в случайном порядке»;

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Когда понадобится найти похожую композицию, то можно попросить об этом Siri: «Играй еще песни как эта» или «Создай радиостанцию на основе этой песни»;

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

На сервисе Apple Music также можно воспроизводить музыку с помощью виртуального помощника. Для этого необходимо дать такую команду: «Включи песню » или «Включи » или в соответствии с топ-листами: «Включи лучшую песню за 2016 год»;

Выбрать можно и композиции по настроению. Например, так: «Включи джазовую музыку» или «Поставь что-нибудь медленное»;

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Если имеется подписка на Apple Music, то можно добавлять оттуда музыку в свою медиатеку с помощью элементарных команд: «Добавь это в мою коллекцию» и т.п;

Если Siri ошибается в выборе трека, то можно поправить программу так: «Нет, включи песню » или «Нет, версию ».

Источник

Где и как искать музыку с помощью Siri

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Рекомендую — ищите новые музыкальные композиции средствами Apple Music. Включайте станции по любимым композициям и смотрите подобных исполнителей. Плюс, используйте Siri в дополнение. И вот три команды помощнице.

Обратите внимание! Если хотите полноценно использовать информацию из этого материала, понадобится подписка на Apple Music — фирменный музыкальный сервис Apple, который рекомендуем редакцией. Цена в РФ — 169 руб./ мес.

1. Играй подобные этой песни

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Голосовой ассистент проанализирует композицию, которая в этот момент воспроизводится на устройстве. И включит основанную на аудиозаписи станцию в Apple Music. В канун новогодних праздников найдете так много тематических.

Жаль, Siri определяет проигрываемую на девайсе композицию для включения станции. И не умеет слушать, что играет на другом для быстрого создания списка новых аудиозаписей по заданой. Ждем это в iOS 10.x или iOS 11.

2. Играй песни этих лет

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Чтобы создать станцию с треками 60-х, 70-х, 80-х и так далее лет на основании композиции, которая воспроизводится в момент времени, используйте эту команду голосовому ассистенту. Таким образом передадите настроение времени.

С этой же командой отдадите Siri указание для воспроизведения аудиозаписей времени без базового трека. Для этого уточните конкретный период — с 2000-го года, 1985 года и так далее. Так получите два десятка треков в новый плейлист.

3. Определи песню

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

В последних версиях iOS Siri научили определять композиции, которые играют в кафе, клубах, на ТВ, концертах и так далее. Для этого голосовой помощник использует движок популярного сервиса Shazam.

Рекомендую использовать и отдельное приложение Shazam (бесплатно) вместе с этой командой Siri. Он пригодится при большом шуме, когда отдать указание голосом нельзя. Возьмите небольшой лайфхак на заметку.

Что интересно, все треки, которые находили описанными командами, сохраняются в специальном списке, о котором знают единицы. С помощью него приобретете понравившиеся или найдете в Apple Music для дальнейшего воспроизведения.

Чтобы найти перечень, перейдите в iTunes Store, выберите раздел музыки, зайдите в список желаний, переключитесь на «Еще» и отметьте Siri. После — увидите найденные композиции в перечне «хотелок». Пожалуйста.

Источник

Как мы интегрировали Яндекс.Музыку с Siri. Доклад Яндекса

Siri — мощный инструмент с публичным API для сторонних приложений. Например, музыкальных. В докладе я рассказал, как начать разработку обработки голосовых медиазапросов от Siri, используя Intents.framework. Поделился нашим опытом — с чем пришлось столкнуться, чего нет в документации и что не работает.

— Всем привет! Меня зовут Ваня, я из команды Яндекс.Музыки. Сегодня я вам расскажу, как Siri попала в Яндекс.Музыку. Музыку можно включать с помощью Siri.

Чтобы вам было понятно, что это и как работает, пример первый. Говорим: «Включи “Сектор Газа” в Яндекс.Музыке» — и бум, музыка пошла. Второй пример: можно сказать «Мне нравится этот трек в Яндекс.Музыке». Вы идете, слушаете, не хотите доставать телефон, whatever. Все полайкано, все хорошо.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Начну с плана. Расскажу про то, зачем мы это делали, кто такая Siri и зачем и когда она появилась для сторонних приложений, а также про типы музыкальных запросов. Они называются интенты — дальше я буду использовать это слово. Расскажу, как и где писать код, что для этого нужно. Покажу реализацию интента, включение музыки и интента, лайка и дизлайка. В самом конце расскажу про нюансы.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Пасхалка от Apple. На страничке документации класса INPlayMediaIntent есть много примеров того, как это работает на разных языках. На русском написано: «Играй Qeen на Яндекс Музыке». Это было сделано еще до того, как мы реализовали поддержку Siri, так что Apple, спасибо вам большое. Это очень лестно.

Зачем мы это делали? Во-первых, почему бы и нет, крутая фича. Во-вторых, это была часть большой задачи по реализации Яндекс.Музыки под Apple CarPlay, но мы сейчас не об этом.

Давайте теперь про Siri. Siri появилась в iPhone 4S, начиная с iOS 5, если я все правильно гуглил. Она выглядела вот так, была совсем неуклюжей. Только к iOS13, на WWDC 2019 показали, что теперь вы можете реализовывать в своих музыкальных приложениях поддержку Siri. Здорово.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Как это работает? Я не придумал ничего лучше, чем просто взять этот слайд из презентации WWDC. Пользователь говорит что-то Siri. Siri это обрабатывает и отдает вам данные в какой-то extension. Вы с этими данными идете в ваши сервисы, бэкенды, app-группы, общие контейнеры. Это работает с вашим приложением, но не всегда. Дальше объясню, почему, и расскажу всю обратную сторону: чтобы вам на экране показалось то, что надо, Siri сказала то, что надо, и так далее.

Типы интентов. Первый — INPlayMediaIntent, интент из серии «включи что-нибудь». INAddMediaIntent — это «добавь что-нибудь». Добавь этот трек в плейлист, когда грустно. INUpdateMediaAffinityIntent — это интент лайк/дизлайк. Последний — INSearchMediaIntent, «найди». То есть вы говорите: «Найди “Сектор Газа” в Яндекс.Музыке». Открывается приложение Яндекс.Музыка, в котором сразу открыт «Сектор Газа».

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Я сегодня расскажу про эти два интента — «включи» и «лайк/дизлайк», потому что именно мы их и реализовали. Давайте посмотрим на код.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Как я говорил, это extension. Называется IntentsExtension. Его нужно создать. Вы его создаете, у вас появляется таргет, в котором вы должны написать строками названия классов, этих интентов, которые вы поддерживаете. Как видите, у нас их два: INPlayMediaIntent и INUpdateMediaAffinityIntent.

Далее снизу вылезает менюшка, где вы должны указать, какие типы данных вы поддерживаете. Эти типы данных будут настраиваться в зависимости от того, какие классы вы указали.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Если это не медиазапрос, а что-нибудь другое — например, у Siri есть еще поддержка заметок, — то там будут другие типы.

Также у вас появляется класс IntentHandler. Он появляется за вас, вам ничего делать не надо. Он выглядит так, он есть у вас в таргете. Все здорово.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Про реализацию протокола INMediaIntentHandling. Это протокол, как очевидно из названия, обрабатывает INPlayMediaIntent. У него больше двух методов, чуть ли не семь. Но я расскажу про эти два, потому что они нам как раз понадобились. Мы их реализовали. Это resolveMediaItems, такой метод нужен для того, чтобы вы собрали данные, с которыми Siri за вас что-то сделала. Вы пошли в ваш поиск, помапили нужные данные для Apple и вернули их в коллбэк. handle — это первая часть обработки этих данных. Дальше объясню, почему первая.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

У этих двух методов есть общий параметр: INPlayMediaIntent. Давайте посмотрим, что это такое. Здесь много букв. Запомните MediaItems — мы потом о нем еще поговорим. Здесь есть куча всего. Например, playback speed для подкастов. Играть с шафлом, без шафла. Repeat mode. Но сейчас нам нужен mediaSearch.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Объясню и покажу, что это. Это класс, у которого есть очень много значений от mediaType до mediaIdentifier. Некоторые вещи заполняет Siri, некоторые заполняете вы. Сейчас объясню на примерах, как это все работает.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Пример 1: «Включи трек Skyfall от Adele в Яндекс.Музыке». Вы можете это сказать Siri прямо сейчас, если у вас есть подписка Яндекс.Музыки. Слово «включи» определяет тип интента. INPlayMediaIntent. Соответственно, будут вызываться те методы, которые я показывал ранее. Слово «трек» определяет поле mediaType, значение — song. Его говорить необязательно, дальше объясню, почему. Когда вы произносите такие дополнительные штуки для Siri, вы улучшаете качество вашего поиска. Вы все еще можете сказать «Включи Skyfall в Яндекс.Музыке». Если наш поиск посчитает, что Skyfall — это трек, который вам нужен, Siri именно его и включит.

Слово «Skyfall» определяет mediaName. «От Adele» определяет artistName. Как вы можете заметить, предлог «от» просто игнорируется, потому что Siri сама за вас поняла: «от» значит, что следующим будет название артиста. И последняя часть: «в Яндекс.Музыке», в каком приложении это должно работать. К сожалению, мы не можем назначить музыкальное приложение по умолчанию. Поэтому нужно всегда в конце добавлять: «в Яндекс.Музыке».

Пример 2: «Включи грустную акустическую музыку в Яндекс.Музыке». «Включи» — понятно. Слово «грустную» определяет moodNames == [“sad”]. Обратите внимание, что тут написано на английском, а не на русском. Есть список констант, который матчит ваши слова в moodNames, вот этот массив, но в документации его нет. Готовьтесь.

Слово «акустическую» определяет genreNames, которое тоже написано на английском. Но эти константы уже есть в документации. Зайдя в документацию по INMediaSearch.genreNames, вы увидите, что она там есть. Огромная таблица, в которой написано, какие жанры понимает Siri. Главное, если вы будете реализовывать это у себя, приготовьтесь к тому, что ваш поиск должен понимать английский язык. Наш, к счастью, понимает.

Слово музыка определяет mediaType==.music. Это считается типом сущности, который можно воспроизводить.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Пример 3: «Скажи Яндекс.Музыке включить рок». То есть мы полностью поменяли слова во фразе местами. И это все равно работает. Еще есть вот такая штука: «Включи музыку, чтобы уснуть, в Яндекс.Музыке». Казалось бы, что здесь такого? То ли в genreNames, то ли в moodNames будет слово meditation. Почему здесь слово meditation, решает только Siri. Ваше дело — реализовать то, что сказала Siri, а дальше надо разбираться самим. И еще куча всего, чего мы не знаем. Возможно, есть и другие фразы, но не в документации. Надо готовиться к тому, что Siri сделает кучу всего за вас. Это прикольно, но одновременно очень странно.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Дальше расскажу прикольную штуку. Siri в прошлом году обучили на библиотеке Apple Music. Когда вы начинаете разговаривать с Siri в музыкальном контексте, например, «Включи “Сектор Газа” в Яндекс.Музыке», она поймет, что «Сектор Газа» — это исполнитель, и сама подставит значение, сделает все за вас.

Вы можете даже сказать на английском: «Play Sector Gaza in Yandex.Music». «Сектор Газа» нормально распарсится. Это очень здорово. До этого был вообще кошмар. Во-первых, как видите, имя «Децл» она не смогла спокойно распознать. А вот тут она еще почему-то взяла название проекта Xcode, которого ни в каких константах нет. Очень странно. Если ваш проект называется в Xcode «Суперпуперприкольное приложение», то здесь будет написано то же самое, хотя название самого приложения другое. Очень странно. Видите, внизу написано «Я.Музыка» и все окей.

Поговорим конкретно про реализацию этих методов. Это resolveMediaItems. Первое, что вы должны сделать — по крайней мере, если у вас так же, как у нас, — это проверить, что пользователь залогинен и у него есть подписка. Как вы видите, существует куча стандартных ответов результатов для Siri. Вы с ними ничего не можете сделать. Вы можете только сказать ей, что нужно сделать. Она скажет проверить данные подписки пользователя, вашего аккаунта. Вы в этих фразах никак не участвуете. Их знает сама Siri, локализует сама Siri. Все делает сама Siri.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Далее вы должны взять этот mediaSearch и склеить эти данные. Мы берем практически все, что есть, помещаем в один массив, делаем из него строку, где каждый элемент просто разбит через пробел, и отправляем в наш поиск, потому что наш поиск такое может съесть. Это здорово. Дальше вы мапите эти данные и отдаете в коллбэки с результатом success. Но важно, как мапить эти данные и во что.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Помните, я вам говорил запомнить INMediaItem? Это они и есть. Вы должны помапить ваши сущности в INMediaItem. Это пример того, как у нас мапятся треки. Для всех остальных сущностей типа плейлиста, артиста, альбома, whatever, все идет таким же образом. Поле mediaItems в интенте будет заполнено данными, которые вы запомнили. Давайте разберем, что куда летит. Оно иногда может показываться на экране — дальше покажу, как. identifier вы заполняете, скорее, для себя. Это id сущности, который хранится у вас на стораджах и на бэкенде. Title, тип, обложка, артист — вот они. Все здорово.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Дальше — реализация handle. mediaItems, которую вы напарсили и вернули в том коллбэке, теперь появляется в поле mediaItems у интента. Вы проверяете, что они есть? возвращаете вот такой response, в котором передаете ей код handleInApp. Помните, я говорил, что у handle есть две части.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Так вот, это оно и есть. В AppDelegate, где же еще, вы должны реализовать еще один метод, который называется application handle with completionHandler, в котором появляются базовые классы интента. Поскольку у нас музыкальное приложение, то мы проверяем только на музыкальные интенты — на то, что это INPlayMediaIntent. Дальше отдаем это в класс, который умеет ходить на бэкенды и качать треки, помещаем все это в плеер и получается вот так. Все, что нужно. Самое прикольное: если вы вернете больше одного успешного результата, то Siri — это видно на виджете плеера на первом скриншоте — покажет кнопку Maybe you wanted. При тапе на эту кнопку открывается второй экран, который находится справа. Там как раз будут сущности, которые вы еще не искали. Максимум четыре. Вы можете сложить туда хоть миллион, но система покажет только четыре. В целом здорово, ничего страшного.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Дальше давайте поговорим про INUpdateMediaAffinityIntentHandling. Из названия протокола очевидно, что он умеет обрабатывать интент INUpdateMediaAffinity. Это как раз лайки и дизлайки. Тут намного интереснее. У самого протокола, по-моему, четыре-пять методов. Я расскажу про три из них, которыми мы воспользовались.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Они вызываются в таком порядке: resolveMediaItems, resolveAffinityType, IntentHandler.

resolveMediaItems работает так же, как и с предыдущим интентом. Вы берете эти данные, идете в ваш поиск, мапите в INMediaItem и возвращаете в коллбэки.

Все то же самое. resolveAffinityType. Нужно проверить, что вы можете с этой конкретной сущностью, которую вы нашли в поиске, совершить это конкретное действие. Например, лайк или дизлайк. Дальше покажу подробнее, зачем это нужно. Handle уже одинарный, не двойной, в котором мы должны совершить это действие — лайк/дизлайк. У них есть общий параметр. Это INUpdateMediaAffinityIntent. Давайте разберем, что это такое. Он гораздо меньше.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

У него есть три поля. С mediaItems и mediaSearch мы уже знакомы. Что такое affinityType? Это enum, у которого есть три значения: unknown, like и dislike. В целом понятно, это как раз тип действия, которое вы должны совершить.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

С mediaSearch вы уже знакомы, но у него есть одно поле, которым мы не пользовались: reference.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Что это такое? Это значение INMediaReference, тоже enum. У него есть два значения: unknown и currentlyPlaying.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Если еще кто-то не догадался, что это такое, то давайте я вам покажу на примерах.

Пример 1. «Мне нравится трек Skyfall от Adele в Яндекс.Музыке». Фраза «мне нравится» определяет тип интента, INUpdateMediaAffinityIntent. То есть по этому протоколу будет вызываться именно ваш код, INUpdateMediaAffinityIntentHandling. Также это определяет поле affinityType как like, потому что «Мне нравится». Cлово «трек» определяет mediaType==.song так же, как раньше.

«Skyfall» точно так же определяет поле mediaName. «Adele» — artistName. В целом понятно.

Пример 2. «Мне не нравится этот трек в Яндекс.Музыке». Тут по-другому. «Мне не нравится» определяет тип интента и affinityType==dislike, так как «Мне не нравится».

Слово «этот» определяет слово reference как currentlyPlaying. То есть как раз то самое значение, то, что сейчас играет.

Слово «трек» определяет mediaType==.song, которое также необязательно, потому что можно сказать: «Мне нравится это в Яндекс.Музыке». Этого будет достаточно. Но «трек» улучшит поиск.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Реализация resolveMediaItems. В начале вы точно так же проверяете логин, подписку. Дальше идет небольшой паттерн-матчинг, примерно похожий на тот, который есть у нас в коде. Пример resolveNotCurrent я рассматривать не буду, потому что он точно такой же. Вы берете все данные, которые есть у вас в интенте, в mediaSearch, идете в ваш поиск, мапите и возвращаете в коллбэке. Все здорово. Но я расскажу про вот эту штуку, потому что она интереснее. resolveCurrent. Во-первых, как вы можете заметить, этот enum работает не совсем правильно. CurrentlyPlaying — это хорошо, если сказать, что мне нравится этот трек. Но если сказать, мне нравится «это», значение будет unknown, а query будет пустым. Почему так? Понятия не имею. Но это так. Мы это поняли в момент испытания Siri. Это очень странно, но работает именно так. Давайте теперь подумаем. currentlyPlaying, что сейчас сыграет. Extension — это другая часть приложения. У нас нет доступа.

Что делать? Для начала расскажу, кто не знает, что такое NowPlayingInfo. Это большой словарь с кучей стандартных ключей, которые есть в Media Player framework, если я ничего не путаю. Вы его заполняете данными. На виджете плеера, на локскрине и в Control Center появляются как раз те данные, которыми вы заполнили этот словарь.

Apple нам обещала, что если положить в NowPlayingInfo по тому ключу, который вы видите на экране, любое строковое значение, то в intent.mediaSearch?.mediaIdentifier будет как раз то значение, которое лежит в NowPlayingInfo. Но это вообще не работает. Я пытался, не сработало. К счастью, на помощь пришли божественные App Groups, которые работают уже тысячу лет, и никаких проблем с ними нет.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Как они помогли? Вы создаете appGroupUserDefaults, указываете в suitName id вашей app.group. В основном приложении вы вставляете значение по ключу. Из extension достаете по этому ключу. Все работает классно. Я на всякий случай решил воспользоваться ключом, который как раз не работает, чтобы как минимум оставить напоминание самому себе, что это не работает.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Есть еще вот такая штука. Один из результатов, которые нужно запомнить, — это disambiguation. Например, пользователь сказал, что ему нравится этот артист в Яндекс.Музыке.

Но играет трек, у которого несколько исполнителей. Что делать? Этот результат как раз для этого и нужен.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Siri отобразит вот такое меню.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Вы можете голосом или тапом выбрать то, что нужно. INMediaItem, один из них уйдет дальше в метод handle. Точнее, сначала в resolve AffinityType. Зачем он нужен? Например, в Музыке так повелось, что мы дизлайкать можем только треки. Артиста или альбом вы дизлайкать не можете. Этот метод нужен как раз для таких случаев. Вы проверяете тип значения, и если это трек, то его можно лайкать и дизлайкать. Если это что-то другое, вы можете только лайкать. Дальше проверяете: если они совпадают, возвращаете константу unsupported. Тут забавно. Siri мне говорит, что это работает для какого-то определенного типа. Поэтому она скажет, что просто не поддерживаются дизлайки. Хотя они поддерживаются, но только для треков. Спасибо!

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Метод handle. Вы точно так же проверяете MediaItems, который у нас есть, берете его id и дальше должны сходить в API и полайкать. То есть в целом все просто.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

По ответу от сервера вы можете вернуть два значения: success или fail. Если пришла ошибка, то все плохо. Siri обязательно об скажет, что произошла какая-то ошибка, либо как я показывал в примере: «Я сказала Яндекс.Музыке, что вам это нравится».

Вы вроде бы все сделали. Но это, естественно, не все. Возникают нюансы. Нюанс номер один: пользователи Яндекс.Музыки привыкли к тому, что дизлайк трека приводит к автоматическому скипу, включается следующий. Очевидно, если человеку не нравится этот трек, зачем его слушать дальше. А как, находясь в другом таргете, заставить плеер переключиться на другой трек? На помощь нам пришли старые-добрые сишные дарвиновские нотификации.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Как они нам помогли и что это такое, сейчас объясню. Дарвиновские нотификации — это core-штука системы. Ими можно обмениваться между таргетами, между приложениями. Отправка выглядит так, обработка — так. В целом понятно. Мы из extension отправляем нотификацию, что мы дизлайкнули текущий трек. Это ловит основное приложение, делает скип, все довольны.

Нюанс номер два — русский язык. Сейчас объясню, почему. Я тестировал на английском, потому что система у меня стоит на английском. Наше приложение называется Yandex Music. Никаких проблем нет, для Siri тем более. Но на русском языке наше приложение называется Я.Музыка. Когда я попробовал что-то типа «Включи “Сектор Газа” в Я.Музыке», Siri посчитала, что «Я» сказано случайно и надо включить исполнителя в Apple Music. Вот так это и работало. К счастью, есть решение.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

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

Именно поэтому у нас как альтернативное название приложения указана Яндекс.Музыка. Подсказка для произношения описана в Яндекс.Музыке, потому что пользователь скажет, что ему «нравится что-нибудь в Яндекс.Музыке». Это работает без проблем, спасибо, Apple. Очень элегантное, хорошее решение.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Нюанс номер три. С ним поинтереснее. Наши пользователи в курсе, что это такое. Это два умных плейлиста из списка скольки-то наших умных плейлистов. С ними возникли нюансы. Начнем с плейлиста дня.

«Включи плейлист дня в Яндекс.Музыке». Казалось бы, мы хотим, чтобы слово «Включи» определило тип интента, а слова «плейлист дня» определили mediaName. Но это работает по-другому. Слово «плейлист» определяется как mediaType==.playlist, потому что Siri поняла: нужно включить какой-то плейлист. А слово «дня» распознается как mediaName.

Есть workaround, но он для пользователя. «Включи плейлист плейлист дня в Яндекс.Музыке», где слово плейлист определится как mediaType. Второе слово «плейлист» определится как mediaName, и все счастливы.

Кажется, можно это закостылить — сразу объясню, почему мы не стали этого делать. На разных версиях iOS и на разных языках это работает по-разному. Например, если я скажу на английском: «Play playlist playlist of the day in Yandex Music», Siri решит, что вы случайно сказали слово «playlist» два раза подряд, а «of» the ничего не значит, она его выкинет. У вас будет mediaName== “day”. Как вы можете догадаться, включится Green Day (00:26:05). Это аботает не так хорошо, как хотелось бы.

«Включи плейлист с Алисой в Яндекс.Музыке». Тут еще интереснее. «Включи» по-прежнему определяет интент. Слово «плейлист» определяет playlist. А «с Алисой» определяется как artistName.

Знаете, почему? Потому что есть такая рок-группа — «Алиса». Русская Siri посчитала, что «Алиса» — это та самая рок-группа. Причем если сказать ту же самую фразу на английском, то включится исполнитель, которого зовут A-List.

К этому можно было бы найти решение. Есть класс INVocabulary, который может задавать для Siri кастомный вокабуляр ваших сущностей в приложении. Слишком умно сказано, в чем соль? Вы можете передать туда название ваших сущностей, как у нас плейлист дня и плейлист с Алисой. Передаете по специальному типу mediaPlaylistTitle, чтобы Siri поняла, что это такие плейлисты. И все должно заработать. Это первая фишка из моего опыта, которая кидает exception при обращении к ней, если не выставлен entitlement для этой API. Я проверял, оно не помогает. Они это как-то асинхронно делают.

Вторая проблема. Все это, к сожалению, не сработало. Слово «плейлист» все-таки важнее для Siri как тип сущности, а не как название этой сущности.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Нюанс номер пять. Когда мы закинули сборку в App Store Connect, нам пришло письмо счастья с перечислением проблем приложения. К счастью, это был просто warning, не автоматический reject о том, что Siri реализована неправильно. В письме было сказано, что мы не представили примеры фраз по каждому из языков, со ссылкой на документацию.

В итоге, покопавшись в документации, мы поняли, что нужно создать plist именно с таким названием. Вы не указываете его ни в build settings, нигде. Это просто название. И локализуется оно вот таким образом. То есть сам файл локализован, а не локализованы строки внутри него. Как вы можете догадаться, это неудобно, потому что большинство сервисов, сторонних, которые мы используем, не поддерживают такой тип локализации. Поэтому все переведенные строчки я решил поместить в нее руками, а не писать какие-то скрипты. Вы знаете, что лучше сделать за пять минут руками, чем автоматизировать пять часов.

В этих строчках нужно писать для каждого интента примеры того, как пользователю пользоваться Siri. Например: «Включи рок в Яндекс.Музыке», «Мне не нравится этот трек». Я это сделал. Потом у меня возник вопрос: где это показывается? В документации этого нет. Никто ничего не пишет.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

В какой-то момент до меня дошло. Помните бородатые времена, когда была iOS 13 и Siri была полноэкранной? У нее, если совершить определенное количество действий, появлялись подсказки. Там есть сторонние приложения. Вы видите Яндекс.Музыку и Telegram. Почему это здесь написано, мне неизвестно, но Apple, очевидно, это чинить не будут, потому что Siri в iOS 14 уже неполноэкранная. Там просто маленький красивый кругляшок снизу, и все.

включи сири такую песню. Смотреть фото включи сири такую песню. Смотреть картинку включи сири такую песню. Картинка про включи сири такую песню. Фото включи сири такую песню

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *