У меня есть два контроллера вида в контроллере навигации. Я перехожу от первого контроллера представления ко второму и воспроизвожу аудио во втором контроллере. Однако, когда я нажимаю кнопку «Назад», чтобы вернуться к первому контроллеру просмотра, звук перестает воспроизводиться.iOS аудио перестает играть, когда контроллер просмотра возвращается назад
ниже аудио воспроизведения класс:
@interface AudioPlayer()
@property AVAudioSession *audioSession;
@property AVAudioPlayer *audioPlayer;
@property BOOL audioPlaying;
@property BOOL audioInterrupted;
@end
@implementation AudioPlayer
- (instancetype)init
{
self = [super init];
if (self) {
[self configureAudioSession];
[self configureAudioPlayer];
}
return self;
}
- (void)tryPlayMusic {
[_audioPlayer prepareToPlay];
[_audioPlayer play];
_audioPlaying = YES;
}
- (void) configureAudioSession {
// Implicit initialization of audio session
self.audioSession = [AVAudioSession sharedInstance];
NSError *setCategoryError = nil;
[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (setCategoryError) {
NSLog(@"Error setting category! %ld", (long)[setCategoryError code]);
}
}
- (void)configureAudioPlayer {
// Create audio player with background music
NSString *audioPath = [[NSBundle mainBundle] pathForResource:@"bigbigworld" ofType:@"mp3"];
NSURL *audioURL = [NSURL fileURLWithPath:audioPath];
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:nil];
_audioPlayer.numberOfLoops = -1; // Negative number means loop forever
}
@end