【问题标题】:iOS 6, Xcode 4.5 video not exiting when done playingiOS 6,Xcode 4.5 视频播放完毕后不退出
【发布时间】:2012-10-27 22:56:52
【问题描述】:

我正在使用此代码在 iOS 6 上播放视频:

-(void)GrommeVideo4
{
NSURL *url5 = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                      pathForResource:@"Flickers" ofType:@"mp4"]];
grommePlayer4 =  [[MPMoviePlayerController alloc]
                  initWithContentURL:url5];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayerWillExitFullscreen:)
                                             name:MPMoviePlayerWillExitFullscreenNotification
                                           object:nil];

grommePlayer4.controlStyle = MPMovieControlStyleDefault;
grommePlayer4.shouldAutoplay = YES;
[self.view addSubview:grommePlayer4.view];
[grommePlayer4 setFullscreen:YES animated:YES];
}

-(void) moviePlayBackDidFinish:(NSNotification *)aNotification{
[grommePlayer4.view removeFromSuperview];
grommePlayer4 = nil;
}


- (void)moviePlayerWillExitFullscreen:(NSNotification*) aNotification {
[grommePlayer4 stop];
[grommePlayer4.view removeFromSuperview];
grommePlayer4 = nil;
}

我可以随时按“完成”退出视频,效果很好,但是当我观看视频到最后时,它只是显示黑屏。关于为什么会发生这种情况的任何想法?

【问题讨论】:

    标签: xcode ios6 xcode4.5


    【解决方案1】:

    试试这个,希望对你有帮助

    -(void)GrommeVideo4
    {
        NSURL *url5 = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                          pathForResource:@"Flickers" ofType:@"mp4"]];
        grommePlayer4 =  [[MPMoviePlayerController alloc]
                      initWithContentURL:url5];
    
        grommePlayer4.controlStyle = MPMovieControlStyleDefault;
        grommePlayer4.shouldAutoplay = YES;
        [self.view addSubview:grommePlayer4.view];
        [grommePlayer4 setFullscreen:YES animated:YES];
    }
    
    -(void) moviePlayBackDidFinish:(NSNotification *)aNotification{
        [grommePlayer4.view removeFromSuperview];
        grommePlayer4 = nil;
    }
    
    
    - (void)moviePlayerWillExitFullscreen:(NSNotification*) aNotification {
        [grommePlayer4 stop];
        [grommePlayer4.view removeFromSuperview];
        grommePlayer4 = nil;
    }
    

    【讨论】:

    • 但是我不需要使用这条线调用电影PlayBackDIdFinish:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    【解决方案2】:

    您是否尝试在moviePlayBackDidFinish 中也停止播放器?

    【讨论】:

    • 是的,我试过了,没有效果,还是黑屏。
    • 我们不能再使用 autorelease 或 release,这个问题是从 2009 年开始的,我找不到更新的东西。
    • 只是不要放自动发布/发布代码。它是由 arc 自动完成的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多