首页 文章

iPad上的MPMoviePlayerController问题

提问于
浏览
3

我正在尝试在iPad上使用 MPMoviePlayerController 课程 .

这是我的代码:

multimediaPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]];               
multimediaPlayer.movieControlMode = MPMovieControlModeDefault;
[multimediaPlayer play];

这在iPhone上运行得很好,但它不想在iPad上运行 . 我听到了视频的声音,但电影没有播放 . 为什么会出现这个问题?

5 回答

  • 4

    下面的代码非常适合我的应用程序 . 希望它会为你做同样的事情 . 主要是设置mpMoviePlayerController框架的框架 . 如果你不这样做,它几乎不会显示视频 .

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    
        // Register to receive a notification when the movie has finished playing. 
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(moviePlayBackDidFinish:) 
                                                     name:MPMoviePlayerPlaybackDidFinishNotification 
                                                   object:nil];
    
        // Register to receive a notification when the movie scaling mode has changed. 
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(movieScalingModeDidChange:) 
                                                     name:MPMoviePlayerScalingModeDidChangeNotification 
                                                   object:nil];
        kDomain = [NSString stringWithString:@"http://www.virtua-book.com/"];
        [navigationController setNavigationBarHidden:YES];
    
        NSURL *ur=[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"IPAD" ofType:@"mp4"]];
        mpMCtr=[[MPMoviePlayerController alloc] initWithContentURL:ur];
        mpMCtr.fullscreen=YES;
        [mpMCtr setScalingMode:MPMovieScalingModeFill];
        [mpMCtr setShouldAutoplay:YES];
        [mpMCtr setControlStyle:MPMovieControlStyleNone];
        [mpMCtr setMovieSourceType:MPMovieSourceTypeFile];
        mpMCtr.view.frame = CGRectMake(0, 0, 1024, 768);
        [mpMCtr setRepeatMode:MPMovieRepeatModeNone];
    
        [mpMCtr play];
    
        [ur release];
    
        // Override point for customization after app launch    
        [navigationController.view addSubview:mpMCtr.view];
        [window addSubview:[navigationController view]];
        [window makeKeyAndVisible];
    
        return YES;
    }
    
    
    //  Notification called when the movie finished playing.
    - (void) moviePlayBackDidFinish:(NSNotification*)notification
    {
        [mpMCtr.view removeFromSuperview];
    }
    
  • 1

    要修复后退/前进(或上一个/下一个)按钮,您应该执行以下操作:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
    
    ...
    
    - (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification {
     if (moviePlayer.playbackState == MPMoviePlaybackStateStopped) {
      [moviePlayer setContentURL:[moviePlayer contentURL]];
      [moviePlayer play];
     }
    }
    
  • 1

    沿着这些方向的东西可能是你想要做的:

    MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentUrl:movieUrl];
    [self presentMoviePlayerViewController:mpvc];
    
  • 0
    MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc]initWithContentURL:movieURL];
    mp.moviePlayer.controlStyle = 2;
    
  • 0

    好吧,伙计们,我发现这个:已被弃用了 .

    解决方案是 multimediaPlayer.controlStyle = MPMovieControlStyleDefault; 但它仍然无法正常工作 .

相关问题