У меня проблема с AVPlayer, который не играет в фоновом режиме.
Вот подробности:
У меня есть объект AVPlayer и AVPlayerItem в качестве переменной экземпляра моего контроллера представления для потоковой передачи музыки по ссылкам, хранящимся в NSMutableArray, linkArray .Когда пользователь нажимает на трек на треке в UITableView, оба объекта создаются следующим образом:
musicPlayerItem = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:[linkArray objectAtIndex:indexPath.row]]];
player = [[AVPlayer alloc] initWithPlayerItem:musicPlayerItem];
... И он воспроизводится отлично.Всякий раз, когда дорожка заканчивается, когда приложение активно , оно нормально пропускается, или когда я вручную запускаю приложение, чтобы пропустить дорожку (независимо от того, является ли оно активным или фоновым).Но, когда приложение находится в фоновом режиме (в том числе, когда устройство заблокировано), оно не будет воспроизводить следующую дорожку, когда оно пропускается.
Таким образом, оно самостоятельно переходит к следующей дорожке, но не воспроизводитсяЭто.Мне нужно либо снова активизировать приложение, либо запустить воспроизведение (через элементы управления наушниками или общесистемные элементы управления музыкой).
Вот код метода skipTrack, который вызывается как при ручном вызове, так исистема, когда песня достигает конца трека:
if (nowPlaying == [linkArray count]-1) {
nowPlaying = 0;
musicPlayerItem = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:[linkArray objectAtIndex:0]]];
player = [[AVPlayer alloc] initWithPlayerItem:musicPlayerItem];
} else {
NSLog(@"NowPlaying (before increment: %i", nowPlaying);
//If not, increment nowPlaying by one and play
nowPlaying++;
NSLog(@"NowPlaying (after increment: %i", nowPlaying);
musicPlayerItem = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:[linkArray objectAtIndex:nowPlaying]]];
player = [[AVPlayer alloc] initWithPlayerItem:musicPlayerItem];
}
Действительно надеюсь, что кто-то может помочь мне с