Как стать автором
Обновить

Комментарии 9

Данная статья это перевод чего?
Очень полезные раскопки. За идею матчить через musicbrainz отдельное Спасибо, я уж и позабыл про его использование
Спасибо интересная статья, за musicbrainz — спасибо, буду смотреть.
Я около 7 месяцев пилю свой плеер, с частью проблем столкнулся, с частью нет, например, с лимитами у меня вроде все хорошо.
Есть еще куча интересных проблем) Например, добавление в библиотеку пользователя, получение песен и плейлистов из библиотеки работает, но не показывает какие из них скачены. Из плеера я не смог получить список песен, которые в очереди сейчас играют. Методы работы с текущей проигрываемой песней — глючат, а получение лирики видимо требует дополнительный запрос, который нигде не описан и видимо является приватным, так что у меня всегда возвращает nil кроме пары странных песен. На картинку артиста я в итоге на данный момент забил)
iPad, на котором тестируют приложения, из коробки не умеет авторизацию в Apple music и я сделал специальный обработчик с просьбой пойти и поиграть музыку в стандартном плеере(потратил дней 10 не переписки и review). Я, кстати, скоро напишу статью о своих мучениях, а заинтересованных прошу в мой профиль — там есть ссылка на мой плеер.
> Из плеера я не смог получить список песен, которые в очереди сейчас играют

Вот с этим проблем не было, если добавляются именно песни (по идентификаторам в iTunes Store), то в очереди будут `MPMediaItem` с соответствующими идентификаторами

> а получение лирики видимо требует дополнительный запрос

Тексты песен берутся из мета-тагов и не доступны для Apple Music (только если артист сам не прописал в мета-таги тексты). Apple Music в приложении берёт тексты из musixmatch, у них есть API и SDK (можно в частности получать тексты при установленном приложении musixmatch), однако имеются вопросы с авторскими правами при таком использовании. Разработчик приложения Soor был вынужден выключить показ песен за неимением формальной договорённости с musixmatch, потому что иначе приложение не проходило ревью в App Store

> iPad, на котором тестируют приложения, из коробки не умеет авторизацию в Apple music
Тут не очень понимаю в чём дело (локальная проблема с конкретным устройством?), будет интересно почитать подробности

А вот с плейлистами полная беда, даже абсурд какой-то: нельзя удалять плейлисты, которые были созданы в собственном приложении. Пока я не вижу альтернатив ведению собственных плейлистов в приложении с возможностью экспорта в Music.app и импортирования в одну сторону плейлистов из Music.app в приложение.
Вот с этим проблем не было, если добавляются именно песни (по идентификаторам в iTunes Store), то в очереди будут `MPMediaItem` с соответствующими идентификаторами

Как получить список песен в очереди? я не смог, можете код кинуть?) Задача в том, что допустим запустили Music.app, оттуда какие-то песни(Apple Music) и потом стартуют приложение, как получить песни, которые сейчас в списке на воспроизведение?
Тут не очень понимаю в чём дело (локальная проблема с конкретным устройством?), будет интересно почитать подробности

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

печаль(
Если работаем с плеером приложения (MPMusicPlayerApplicationController), то провести транзакцию, которая не изменяет состояние очереди, но получает из неё объекты.

В вашем же случае речь идёт про интеграцию с Music.app, значит приходится использовать системный плеер, который не предоставляет методов для продвинутой работы с очередью. Тут ничего особо не поделать, можно лишь получать текущий проигрываемый трек (и подписываться на смену трека).

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

P.S. Есть, конечно, идиотский вариант: остановить проигрывание и поскипать треки туда-сюда проверяя какой трек обозначается как текущий, после чего вернуться на изначальный трек и продолжить проигрывания с заданной точки.
системный, жаль, но я так и предполагал( а приватные методы использовать нерешаюсь.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории