版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://alpha3171.blogbus.com/logs/51256985.html
NSUInteger row = [indexPath row];
NSString *file_name = [NSString stringWithFormat: @"a%d", row+1];
if(!moviePlayer) {
NSString* moviePath = [[NSBundle mainBundle] pathForResource:file_name ofType:@"mp4"];
NSURL* movieURL = [NSURL fileURLWithPath:moviePath];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
}
[moviePlayer play];
}
为什么程序重新启动就可以播放 视频,而当播放一个 视频返回后播放其他的 视频就还是上次播放的 视频,而且屏幕还闪,有时干脆就是黑屏?是不是内存释放问题?该怎么释放?在哪释放?释放什么?
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
// Movie playback is asynchronous, so this method returns immediately.
[moviePlayer play];
// When the movie is done,release the controller.
- (void)myMovieFinishedCallback:(NSNotification*)aNotification
{
MPMoviePlayerController* moviePlayer=[aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
// Release the movie instance created in playMovieAtURL
[moviePlayer release];
}
MPMoviePlayerController* theMovie = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:[[[tableTitles objectForKey:keyIndex] objectAtIndex:row] objectAtIndex:3] ]]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie]; [theMovie play]; -(void)myMovieFinishedCallback:(NSNotification*)aNotification { MPMoviePlayerController *theMovie = [aNotification object]; [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie]; // Release the movie instance [theMovie release]; } ------------ MPMoviePlayerController* theMovie = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:[[[tableTitles objectForKey:keyIndex] objectAtIndex:row] objectAtIndex:3] ]]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie userInfo:dic]; [theMovie play]; -(void)myMovieFinishedCallback:(NSNotification*)aNotification { MPMoviePlayerController *theMovie = [aNotification object]; [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie]; // Release the movie instance [theMovie release]; } |