首页 文章

MPMoviePlayerController 第二次播放视频

提问于
浏览
3

我需要有可能在应用中播放多个视频。

不幸的是,第二次按下播放时,视频会闪烁。

我只用这个代码来播放视频

NSURL * url = [[[1] initFileURLWithPath:[[2] pathForResource:@“Movie”ofType:@“m4v”]] autorelease];

MPMoviePlayerController * mp = [[3] initWithContentURL:url];

mp.movieControlMode = MPMovieControlModeDefault;

[mp play];

moviePlayer = mp;

[mp 发布];

谁能告诉我哪里可以出问题?提前致谢!

**更新 1:**似乎 Apple MoviePlayer示例有同样的问题。

4 回答

  • 4

    你也可以在调用播放功能之前将初始播放时间设置为-1.0

    mp.initialPlaybackTime = -1.0;
    

    在调用 ur play 方法之前放置此代码。

  • 1

    我有这个问题并通过使用通知系统在 MPMoviePlayerController 完成播放后执行回调并在那里释放播放器对象来解决它。

    在播放电影之前添加通知:

    NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease];
    
    MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url];
    
    mp.movieControlMode = MPMovieControlModeDefault;
    
    //***Add this line***
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp];
    
    [mp play];
    

    然后添加回调方法,

    -(void)myMovieFinished:(NSNotification*)aNotification
    {
        MPMoviePlayerController *moviePlayer = [aNotification object];
        [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer];
        [moviePlayer release];
    }
    
  • 0

    它接缝唯一的解决方案是...为 3.1 制作应用程序

  • 0

    我也发现运行 OS 3.1 或更高版本的模拟器可以播放 well.It 当我添加时不会出现 blinking.But

    initialPlaybackTime = -1.0
    

    它也将在 OS 3.0 上发挥出色。

相关问题