音乐开始播放的iOS通知

时间:2013-11-19 02:04:43

标签: ios unity3d

我正在研究用Unity制作的游戏,我正在尝试处理玩家拥有内置遥控器的耳机的情况。播放游戏时,播放器按下遥控器上的播放按钮,并开始播放来自背景音乐应用的音乐。理想情况下,我们会捕获此事件并关闭我们的音乐,但我似乎无法找到在这种情况下触发的通知。我在AppController.mm中尝试了以下内容:

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    ...

    // music notifications
    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

    [notificationCenter
     addObserver: self
     selector:    @selector (handlePlaybackStateChanged:)
     name:        MPMusicPlayerControllerNowPlayingItemDidChangeNotification
     object:      [MPMusicPlayerController iPodMusicPlayer]];

    [[MPMusicPlayerController iPodMusicPlayer] beginGeneratingPlaybackNotifications];

    return NO;
}

- (void)handlePlaybackStateChanged:(NSNotification*)notification
{
    NSLog(@"Playback State: %d", [MPMusicPlayerController iPodMusicPlayer].playbackState);
    //if([[MPMusicPlayerController iPodMusicPlayer].playbackState
}

是否有人知道在这种情况下实际触发的通知或我可以识别这种情况的方式?提前谢谢!

1 个答案:

答案 0 :(得分:1)

Unity更新中将丢失AppControler.mm中的修改。更安全的方法是将所有本机代码放在文件夹 Assets / Plugins / iOS ,s中。 Building Plugins for iOS了解更多信息。

我制作了一个名为iPodHandlerPlugin on gitHub的小插件。只需将lib文件放在 Assets / Plugins / iOS 和IPodHandler下面的 Scripts 下。

要获得状态更改通知,请按照自述文件中的说明进行操作。

也许静态库有点过量。或者,您可以直接在 Assets / Plugins / iOS 中使用文件iPodHandlerPlugin.mmUnityIPodCallbackListener.m