Как использовать SBMediaController - всегда выдает «Символ не найден» - PullRequest
4 голосов
/ 27 июня 2011

Я пытаюсь получить доступ к SBMediaController, но мое приложение просто падает.Моя цель - остановить воспроизведение любого музыкального приложения в фоновом режиме с помощью [[[SBMediaController] sharedInstance] stop]

. Я использую приватные заголовки, чтобы получить доступ к privateframeworks, и могу использовать GSLockDevice (), чтобы заблокировать экран, поэтому я считаю, что мой импорт должен быть завершен.,Я заметил, что в приватных фреймворках, таких как GraphicServices.framework, нет SpringBoard.framework, может ли это быть проблемой?Моя ошибка:

dyld: Symbol not found: _OBJC_CLASS_$_SBMediaController
Referenced from: /var/mobile/Applications/D1CB0D98-1858-406C-AF4B 254BBEA7A73D/iTest.app/iTest
Expected in: flat namespace

1 Ответ

2 голосов
/ 05 июня 2012

Вы не можете связаться с SpringBoard. Вы должны получить класс во время выполнения, используя objc_getClass () примерно так:

SBMediaController *controller = [objc_getClass("SBMediaController" sharedInstance];

Кстати, это будет работать только в том случае, если ваш код работает в SpringBoard (он же «твик» или расширение MobileSubstrate). Если ваш код выполняется в его собственном приложении (как в вашем случае), вам следует использовать среду MediaPlayer, предоставленную Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...