NSNotificationCenter с аргументами - PullRequest
0 голосов
/ 02 августа 2011

Я реализую приложение на основе аудио. Я играю два разных звука, используя два AVPlayer. Мне нужно делать разные действия, как только звучат звуки. Для этого я использовал NSNotifications. Но моя проблема в том, что я не могу найти уведомления, связанные с каким игроком. Мой код уведомлений и код селектора следующие, пожалуйста, кто-нибудь подскажет, какую ошибку я совершил.

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playingItemDidEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:iPodPlayer]; 


[[NSNotificationCenter defaultCenter] addObserver:self
                                       selector:@selector(playingItemDidEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:applicationPlayer ];

- (void)playingItemDidEnd:(NSNotification *)notification 
{
      id object= [notification object];

     if(object==ipodPlayer)
     {
       printf("\n Notification from iPod Player ");

     }
     else if(object==applicationPlayer)
     {
       printf("\n Notification from application Player ");
     }

}

Спасибо заранее, Chandra.

1 Ответ

3 голосов
/ 02 августа 2011

Мне нужно изменить кодовую базу следующим образом,

   [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playingItemDidEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:[applicationPlayer currentItem] ];

   [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playingItemDidEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:[iPodPlayer currentItem]];

И код селектора должен быть следующим,

- (void)playingItemDidEnd:(NSNotification *)notification 
{

    AVPlayerItem* object= [notification object];
    if(object==[applicationPlayer currentItem])
    {

    }
    else if(object==[avPlayer currentItem])
    {

    }
}
...