После выхода iOS 13 произошло одно исключение в одном из наших интерфейсов воспроизведения видео. Этот интерфейс предназначен для воспроизведения видео с использованием MPMoviePlayerController. В некоторых случаях видео, которые будут воспроизводиться только один раз, теперь будут автоматически зацикливаться. В то же время уведомление MPMoviePlayerPlaybackDidFinishNotification также не получено.
По отзывам пользователей эта проблема будет появляться только на устройствах iOS13. После тестирования я обнаружил, что только один iPhone11 во всех устройствах iOS13 будет иметь эту проблему, и другие устройства iOS13 (включая другой iPhone11) не имеют такой проблемы.
Когда возникла проблема, я напечатал значение repeatModeи обнаружил, что оно по-прежнему равно 0. Позже я попытался вручную установить repeatMode в MPMovieRepeatModeNone и обнаружил, что эта проблема все еще возникает.
Некоторая дополнительная информация:
1) По какой-то причине я все еще используюXcode10.3 (базовый SDK: iOS12.4) для компиляции проекта, поэтому использование MPMoviePlayerController не приводит к сбою напрямую.
2) Проблемным устройством является тестовая машина партнера, поэтому я могу только удаленно дать им указание протестировать, естьнет возможности отладки локально.
Вот код, который я использовал для проверки:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:filePath];
self.playerController = [[MPMoviePlayerController alloc] init];
[self.playerController setScalingMode:MPMovieScalingModeAspectFit];
[self.playerController.backgroundView setBackgroundColor:[UIColor clearColor]];
self.playerController.movieSourceType = MPMovieSourceTypeFile;
[self.playerController setControlStyle:MPMovieControlStyleNone];
[self.playerController.view setFrame:self.view.bounds];
self.playerController.view.userInteractionEnabled = YES;
[self.view addSubview:self.playerController.view];
self.playerController.contentURL = url;
[self.playerController prepareToPlay];
[self.playerController play];