2011-03-18 61 views
3

我正在使用MPMoviePlayerController来播放iPhone中的视频,现在我希望在视图的一个小区域(而不是全屏)播放此视频。我认为有框架的方式,但我找不到所需的教程。你有没有穿过任何?那太好了。iOS4 MPMoviePlayerController嵌入

修订


我已经达到了这一点,但它仍然没有显示玩家在屏幕上播放。

-(IBAction)startVideo { 
    //start video here 
    NSURL *path = [[NSURL alloc] initWithString:[self localVideoPath:NO]]; 

    // Create custom movie player 
    MPMoviePlayerController *moviePlayer = [[[MPMoviePlayerController alloc] initWithContentURL:path] autorelease]; 

    [moviePlayer setScalingMode:MPMovieScalingModeAspectFill]; 
    [moviePlayer setControlStyle:MPMovieControlStyleNone]; 
    [moviePlayer setFullscreen:FALSE]; 

    // May help to reduce latency 
    [moviePlayer prepareToPlay]; 

    [[NSNotificationCenter defaultCenter] 
     addObserver:self 
     selector:@selector(onMSAASDone:) 
     name:MPMoviePlayerPlaybackDidFinishNotification 
     object:moviePlayer]; 


    //---play partial screen--- 
    //moviePlayer.view.frame = CGRectMake(0, 0, 200, 300); 
    moviePlayer.view.frame = image.frame; 
    //[[moviePlayer view] setFrame: [image bounds]]; 

    [image removeFromSuperview]; 

    [self.view addSubview:moviePlayer.view]; 

    // Show the movie player as modal 
    //[self presentModalViewController:moviePlayer animated:YES]; 

    // Prep and play the movie 
    [moviePlayer play]; 
} 
+0

顺便说一句 - 那是什么,你已经设置了onMSAASDone功能的意图被称为当视频完成(NSNotificationCenter拨打以上)?只是好奇,因为我正在设置类似的东西,所以想了解你为这个功能计划了什么。在我的实施中,我需要为下一个视频设置滚动位置,并在当前视频完成后立即启动... – CoolDocMan 2013-07-17 03:54:07

回答

2

这里是“窗”代码...

MPMoviePlayerController *player = 
[[MPMoviePlayerController alloc] 
initWithContentURL:[NSURL fileURLWithPath:url]]; 

[player setControlStyle:MPMovieControlStyleNone]; 

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

//---play partial screen--- 
player.view.frame = CGRectMake(0, 0, 200, 300); 
[self.view addSubview:player.view]; 
+0

我在触摸图像时将此代码保留在触摸事件广告中给XCode一些错误和焦点给“GDB:编程接收到的信号:'EXC_BAD_ACCESS'” – Neutralizer 2011-03-24 16:56:24

+0

Umair,你应该尝试学习使用调试器 - >检查堆栈,检查控制台 - >会有更多的信息,而不只是一个EXC_BAD_ACCESS。 – Till 2011-03-24 20:25:49

+0

好的,这是我的错误,现在并没有给出这样的错误。虽然该应用程序运行,当我点击图像时,它不显示播放器。 – Neutralizer 2011-03-25 13:24:31