Я создал AVPlayerViewController
и прикрепленный AVPlayer
в методе viewDidAppear
пользовательского UIViewController
. Однако, когда я нажимаю кнопку "Готово", мой пользовательский контроллер просмотра автоматически отбрасывается.
Я хотел бы перехватить это действие, чтобы использовать мой собственный сеанс Segue, но я не уверен, как это сделать. Я нашел примеры для MPMoviePlayerViewController
, но не AVPlayerViewController
.
Код, который я нашел для MPMoviePlayerViewController
, приведен ниже:
- (void)playVideo:(NSString *)aVideoUrl {
// Initialize the movie player view controller with a video URL string
MPMoviePlayerViewController *playerVC = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:aVideoUrl]] autorelease];
// Remove the movie player view controller from the "playback did finish" notification observers
[[NSNotificationCenter defaultCenter] removeObserver:playerVC
name:MPMoviePlayerPlaybackDidFinishNotification
object:playerVC.moviePlayer];
// Register this class as an observer instead
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:playerVC.moviePlayer];
// Set the modal transition style of your choice
playerVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
// Present the movie player view controller
[self presentModalViewController:playerVC animated:YES];
// Start playback
[playerVC.moviePlayer prepareToPlay];
[playerVC.moviePlayer play];
}
- (void)movieFinishedCallback:(NSNotification *)aNotification {
// Obtain the reason why the movie playback finished
NSNumber *finishReason = [[aNotification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
// Dismiss the view controller ONLY when the reason is not "playback ended"
if ([finishReason intValue] != MPMovieFinishReasonPlaybackEnded) {
MPMoviePlayerController *moviePlayer = [aNotification object];
// Remove this class from the observers
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
// Dismiss the view controller
[self dismissModalViewControllerAnimated:YES];
}
}
Я спросил у Apple об этой проблеме, и они ответили следующим образом:
Благодарим вас за обращение в службу технической поддержки Apple Developer (DTS). наш инженеры рассмотрели ваш запрос и пришли к выводу, что есть нет поддерживаемого способа достижения желаемой функциональности, учитывая в настоящее время отправляет конфигурации системы.