MPMovieplayerController Play Video Segunda vez
-
19-09-2019 - |
Pergunta
Preciso ter a possibilidade de reproduzir mais de um vídeo em um aplicativo.
Infelizmente, na segunda vez que pressiono o jogo, o vídeo parece piscando.
Eu uso apenas este código para jogar vide
Nsurl *url = [[[NSURL aloc] initfileurlwithPath: [[NSbundle mainbundle] pathForResource:@"filme" ofttype:@"m4v"]]] autorlease];
MpmovieplayerController *mp = [[mpmovieplayerController aloc] initwithContenturl: url];
mp.MovieCOntrolMode = mpMoVieCOntrolModEDefault;
MP Play];
MoviePlayer = MP;
Release MP];
Alguém pode me dizer onde pode ser o problema? Desde já, obrigado!
Atualização 1: Parece que a maçã MoviePlayer Exemplo tem o mesmo problema.
Solução
Você também pode fazer isso definindo o tempo inicial de reprodução para -1,0 antes de chamar a função de reprodução
mp.initialPlaybackTime = -1.0;
Coloque este código antes que seu método de reprodução seja chamado.
Outras dicas
Eu tive esse problema e o resolvi usando o sistema de notificação para executar um retorno de chamada depois que o MPMoviePlayerController termina de reprodução e liberando o objeto do jogador lá.
Adicione uma notificação antes de fazer o filme:
NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease];
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url];
mp.movieControlMode = MPMovieControlModeDefault;
//***Add this line***
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp];
[mp play];
Em seguida, adicione o método de retorno de chamada,
-(void)myMovieFinished:(NSNotification*)aNotification
{
MPMoviePlayerController *moviePlayer = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer];
[moviePlayer release];
}
Ele costuma que a única solução é ... para fazer o aplicativo para 3.1
Eu também acho que a execução no OS 3.1 ou a versão posterior do simulador pode ser tocada bem. Não parece piscando. Mas quando eu adicionar
initialPlaybackTime = -1.0
Também jogará bem no OS 3.0.