Entlassen MPMoviePlayerViewController auf Spielfehler
-
26-09-2019 - |
Frage
Ich habe ein Problem mit dem MPMoviePlayerViewController: Wenn der Controller den Film nicht an der angegebenen URL finden zeigt es einen weißen Bildschirm und ich kann es nicht in der Nähe gehen lassen
.Dies ist, wie ich den Film-Player zu starten:
- (void) playVideo:(NSString*)path
{
NSURL* url = [NSURL URLWithString:path];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
double osversion = [[[UIDevice currentDevice] systemVersion] doubleValue];
if (osversion >= 3.2)
{
mplayerVC = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
if (mplayerVC)
{
mplayerVC.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[mplayerVC.moviePlayer play];
mplayerVC.moviePlayer.shouldAutoplay = TRUE;
[self presentMoviePlayerViewControllerAnimated:mplayerVC];
//[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerLoadStateChanged:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];
}
}
}
und das ist, wie moviePlayBackDidFinish: Methode sieht wie folgt aus
- (void) moviePlayBackDidFinish:(NSNotification*)notification
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
NSError* error = [[notification userInfo] valueForKey:@"error"];
if (error != nil)
{
// Movie ended with an error
DLog(@"error=%@", error);
}
else
{
// Movie ended successfully
}
[self dismissMoviePlayerViewControllerAnimated];
SAFE_DEL(mplayerVC);
}
Der weiße Bildschirm geschieht nur, wenn die URL falsch verweist
Lösung
Nie Geist Jungs, ich es herausgefunden.
Offenbar in der moviePlaybackDidFinish Methode, die Sie aufrufen müssen
[player stop];
, bevor Sie den Controller abgewiesen.
Oben-Player ist das MPMoviePlayerController Objekt wie folgt erhalten:
MPMoviePlayerController *player = [notification object];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow