Tengo un par de vistas que acceden al reproductor de películas. He puesto el siguiente código en un método en AppDelegate para estas vistas. Ellos envían el nombre del archivo para jugar. El código funciona bien, pero sé que se necesita una versión en algún lugar. Si agrego la última línea como un lanzamiento o liberación automática, la aplicación se bloqueará una vez que el usuario presiona sobre el reproductor.¿Cómo liberar MPMoviePlayerController?
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL fileURLWithPath:moviePath]];
moviePlayer.movieControlMode = MPMovieControlModeDefault;
[moviePlayer play];
//[moviePlayer release];
me sale este error:
objc [51051]: LIBERADO (id): mensaje enviado a videoViewController objeto liberado = 0x1069b30
Programa recibió la señal: “EXC_BAD_INSTRUCTION”.
¿Cómo debo liberar el reproductor?
Sí, ya obtuve el sonido/nada de video. ¡Increíble!¿Cómo se protege contra múltiples notificaciones? ¿Se bloqueará si manejas múltiples? – 4thSpace
Deberá tener algún tipo de bandera: si no está configurada, configúrela y suelte el reproductor. Si está configurado, no hagas nada. –
Probablemente también podría almacenar MPMoviePlayerController como un ivar en el delegado. En el método moviePlaybackDidFinish: puede liberar el ivar y establecerlo en cero en lugar de acceder a notification.object. La segunda notificación enviará stop y autorelease a cero, lo cual está bien. –