0

オーディオ ベースのアプリケーションを実装しています。つまり、2 つの AVPlayer を使用して 2 つの異なるサウンドを再生しています。サウンドが再生されたら、さまざまなアクションを実行する必要があります。これには、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 ");
     }

}

よろしくお願いします、チャンドラ。

4

1 に答える 1

3

次のようにコードベースを変更する必要があります。

   [[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])
    {

    }
}
于 2011-08-02T09:19:41.873 に答える