MPMoviePlayerController 的问题

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
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];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值