MPMoviePlayerController 的问题

来源:互联网 发布:阿里云大厦 编辑:程序博客网 时间:2024/05/24 05:54

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://alpha3171.blogbus.com/logs/51256985.html

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    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];
}

NSNotificationCenter 带参数发送

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];

}

原创粉丝点击