【问题标题】:MPMoviePlayer in UIViewControllerUIViewController 中的 MPMoviePlayer
【发布时间】:2012-12-10 23:06:48
【问题描述】:

我在 UIWebView 中有一个 html 按钮,点击它会推送带有编程 segue 动作的 UIViewController。如何在使用MPMoviePlayer 加载 UIViewController 时播放电影。此代码在MPMoviePlayerViewController 中播放电影,而不是在UIViewController 中推送的segue。我想在segue推送的UIViewController中播放电影。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([request.URL.scheme isEqualToString:@"inapp"]) {
    if ([request.URL.host isEqualToString:@"capture"]) {

  [self performSegueWithIdentifier: @"SegueAction" sender: self];
  NSURL * urlA1 = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"A1"ofType:@"mp4"]]; 
   MPMoviePlayerViewController *playercontrollerA1 = [[MPMoviePlayerViewController alloc] initWithContentURL:urlA1];
        playercontrollerA1.moviePlayer.repeatMode = MPMovieRepeatModeOne;
           [self presentMoviePlayerViewControllerAnimated:playercontrollerA1];
        playercontrollerA1.moviePlayer.movieSourceType = MPMovieSourceTypeFile;            
        // do capture action
    }
    return NO;
}
return YES;
}

【问题讨论】:

    标签: objective-c ios mpmovieplayer


    【解决方案1】:

    使用 MPMoviePlayerController 。您可以将其添加为 self.view.

    的子视图

    例如:

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: myURL];
    [player prepareToPlay];
    [player.view setFrame: myView.bounds];  // player's frame must match parent's
    [self.view addSubview: player.view];
    // ...
    [player play];
    

    更多详情请查看上面的苹果文档链接。

    更新:

    NSURL *urlA1 = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"A1"ofType:@"mp4"]]; 
    MPMoviePlayerController *moviePlayer =
    [[MPMoviePlayerController alloc] initWithContentURL:urlA1];
    moviePlayer.repeatMode = MPMovieRepeatModeOne;
    [self.view addSubview:moviePlayer.view];
    moviePlayer.movieSourceType = MPMovieSourceTypeFile;            
    // do capture action
    

    【讨论】:

    • 我尝试使用上述 - Xcode 显示错误 - “使用未声明的项目 'myView'”。我将 myView 声明为 UIView *myView = [[UIView alloc] init];
    • @Sivon,而不是myView,您应该使用您的self.view 或您要添加的任何视图。
    • 感谢您的快速回复。我将 self.view 代替了 myView 并在情节提要的 Viewcontroller 中添加了一个 UIview。电影没有开始。我不知道下一步该怎么做?
    • @Sivon,这只是一个示例代码。您需要将此方法与上述代码一起使用才能使其正常工作。而不是MPMoviePlayerViewController 使用MPMoviePlayerController 并使用[self.view addSubview: player.view];。其余的事情应该与您的问题类似。
    • @Sivon,你还在面对这个问题吗?我已经更新了我的答案。
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多