AVPlayer Остановить текущее воспроизведение и начать воспроизведение нового элемента - PullRequest
0 голосов
/ 29 апреля 2020

Мое приложение использует один ViewController для воспроизведения разных аудиофайлов. Проблема в том, что если пользователь выходит из вида, чтобы выбрать новый элемент, он просто начинает воспроизводить его поверх того, что уже воспроизводится. Я хочу остановить воспроизведение первого элемента и начать новый. Вот что я имею в своем коде, думая, что replaceCurrentItem будет достаточно, чтобы ... ну ... заменить то, что играло.

NSURL *newURL = [NSURL URLWithString:_entry.articleUrl];

AVPlayer *player = [AVPlayer playerWithURL:newURL];

AVAsset *newAsset = [AVAsset assetWithURL:newURL];
AVPlayerItem *newItem = [AVPlayerItem playerItemWithAsset:newAsset];
[player replaceCurrentItemWithPlayerItem:newItem];

self.controller = [[AVPlayerViewController alloc]init];
self.controller.player = player;

[self addChildViewController:self.controller];
[self.view addSubview:self.controller.view];
self.controller.view.frame = self.view.frame;
[self.controller.player play];
...