0

我有一个要求,我必须播放远程位置可用的视频文件。

我将 URL 传递给 MPMoviePlayerController 实例并调用了方法 play。

现在,电影正在下载中。在电影完全加载并返回根视图之前,我单击了“完成”按钮。

调用了 MPMoviePlayerPlaybackDidFinishNotification 通知。我已经停止了视频并释放了播放器。这是代码

- (void)movieDidFinish:(NSNotification *)aNotifciation
{

    [self.moviePlayer stop];

    [self removeActivityIndicatorView];

    [self.tableView reloadData];

    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:nil];

    [moviePlayer release];

    moviePlayer = nil;

}

但是,视频仍然在后台加载,我也能听到音频。

这决不能发生。

任何人都可以为此提供解决方案吗?

4

2 回答 2

1
[movieplayer stop];
movieplayer.initialPlaybackTime = -1.0;
[movieplayer release]; 

将初始播放时间设置为 -1 应该可以解决您的问题。

于 2010-03-04T07:27:54.423 回答
0

您注册 MPMoviePlayerController 在完成时发出的 NSNotification。这是一个例子:

[[NSNotificationCenter defaultCenter]  
    addObserver:self 
       selector:@selector(movieFinishedCallback:)                                                  
           name:MPMoviePlayerPlaybackDidFinishNotification 
         object:player]; 

放置它的好地方是主 ViewController 类的“viewDidLoad”。

然后在你的方法“movieFinishedCallback:”中(它获取一个作为参数传入的 NSNotification 对象,如果你愿意,你可以使用它来找到关于所发生的完成类型的更多细节)你只需关闭movieplayercontroller

于 2010-12-07T08:16:37.697 回答