4

我正在尝试访问 SBMediaController,但我的应用程序崩溃了。我的目标是停止在后台播放任何音乐应用程序[[[SBMediaController] sharedInstance] stop]

我使用私有标头来访问私有框架,并且可以使用 GSLockDevice() 来锁定屏幕,所以我认为我的导入应该是 finde。我注意到像 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
4

1 回答 1

2

您不能与 SpringBoard 链接。您必须在运行时使用 objc_getClass() 获取类,如下所示:

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

顺便说一句,这只有在您的代码在 SpringBoard 中运行时才有效(又名“调整”或 MobileSubstrate 扩展)。如果您的代码在它自己的应用程序中运行(这是您的情况),您应该使用 Apple 提供的 MediaPlayer 框架。

于 2012-06-05T19:14:12.567 回答