Проверьте, воспроизводится ли звук в приложении

Я работаю над этим уже 3 часа и не могу найти решение. Я использую стороннюю библиотеку, которая воспроизводит звук для меня, я предполагаю, что они используют AVAudioPlayer playSound, и я хочу знать, есть ли способ узнать, воспроизводит ли мое приложение звук.

У меня нет доступа к сторонней библиотеке, и право воспроизводить этот звук является частным. Я пробовал AVAudioSession, но есть только два разных способа проверить, воспроизводится ли звук, и, к сожалению, он может проверять только звук, исходящий из-за пределов приложения.

Спасибо


person iOSAddicted    schedule 03.11.2014    source источник
comment
Вы нашли для этого какое-нибудь решение?   -  person Vishnu Kumar. S    schedule 01.07.2015


Ответы (1)


//Register self for remote notifications of play/pause toggle    
 //(i.e. when user backgrounds app, double-taps home,   
  //then swipes right to reveal multimedia control buttons).  
   //See MyWindow.h for more info.     

Add this Notification Center where to detect playback

[[NSNotificationCenter defaultCenter] addObserver:self                                              selector:@selector(toggling_Playback)                                                  name:@"TogglePlayPause" object:nil]; 

- (void)toggling_Playback {     
     (self.player.isPlaying ? [self.player pause] : [self.player play]); 
}


AVAudioPlayerDelegate protocol methods: 

 - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)p successfully:(BOOL)flag { 
    [self.player stop];        
  [self ffButtonWasPressed];  
   } 

- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player {    
 //In real app, may persist this to NSUserDefaults to act on after interruption ends  
   //or app resumes.    
 NSLog(@"Interruption began"); 

} 

//Note: this form is only for iOS >= 4.0. See docs for pre-4.0.

 - (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags { 
    NSLog(@"Interruption ended");   
  //restart playback if flag indicates we should resume 
    if (flags & AVAudioSessionInterruptionFlags_ShouldResume)     {    
     [self toggling_Playback];    
 } 
}

Если у вас все еще есть сомнения: обратитесь по этой ссылке http://www.allappsdevelopers.com/TopicDetail.aspx?TopicID=99cb8bf0-91ac-4c41-a903-2dc744444b7a

person Divya Bharathi    schedule 04.11.2014