在应用程序委托中调用MPMoviePlayerViewController

萨加尔

我在应用程序中使用故事板。使用情节提要板,所有视图均已正确连接现在我要做的是,

当我的启动画面关闭时,我希望每次用户打开应用程序时都显示3秒的视频。

我知道如何从ViewController加载视频,以下是我用来启动视频的代码。

- (void)showVideo
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSLog(@"video path :- %@",url);
    videoController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    videoController.moviePlayer.controlStyle = MPMovieControlStyleNone;
    [self presentMoviePlayerViewControllerAnimated:videoController];
    [videoController.moviePlayer play];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:videoController];
}

- (void) moviePlayBackDidFinish:(NSNotification*)_notification
{
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:nil];

    [videoController.view removeFromSuperview];
    [videoController.moviePlayer stop];
    videoController = nil;
    [self.view removeFromSuperview];
}

但是当我在rootViewController应用程序中使用此代码时,崩溃

Attempt to present <MPMoviePlayerViewController:> on <DashbaordVC:> whose view is not in the window hierarchy

但是,当我在使用导航控制器(无Storyboard)的其他演示应用程序中使用相同的代码时,它可以正常工作。但是在使用故事板的应用程序中,它崩溃了。

我也试过了

[self.navigationController pushViewController:self.videoController animated:NO];

然后我想到了在AppDelegate文件中添加此代码,并从中调用该方法 ApplicationDidFinishLaunching

但是没有帮助。谁能指导我...。同样也是如何添加MPMoviePlayerViewController应用程序委托。

希拉格·莎(Chirag Shah)

我认为您可以通过MPMoviePlayerController做到这一点。尝试以下代码

         NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"];
         NSURL *url = [NSURL fileURLWithPath:path];

        videoPlayer = [[MPMoviePlayerController alloc] init];
        [videoPlayer.view setFrame:CGRectMake(0.0, viewTopbar.frame.size.height,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - (viewTopbar.frame.size.height + 50.0))];
                [videoPlayer setMovieSourceType:MPMovieSourceTypeFile];

        [videoPlayer setContentURL:url];
        [videoPlayer setControlStyle:MPMovieControlStyleEmbedded];
        [videoPlayer setScalingMode:MPMovieScalingModeNone];
        [videoPlayer prepareToPlay];
        [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:videoPlayer];

       [self.view addSubview:videoPlayer.view];
       [videoPlayer play];

而且,如果您不希望全屏显示,请像这样使用它

[videoPlayer setControlStyle:MPMovieControlStyleNone];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从应用程序委托中调用UIViewController方法

来自分类Dev

从应用程序委托在活动视图的类中调用函数

来自分类Dev

调用委托后应用程序崩溃

来自分类Dev

从视图控制器调用应用程序委托方法

来自分类Dev

未调用应用程序委托,project.pbxproj损坏

来自分类Dev

从uitableview cellForRowAtIndexPath委托中删除行时,应用程序崩溃

来自分类Dev

在应用程序委托中更改背景颜色

来自分类Dev

从应用程序委托中检索managedObjectContext时崩溃

来自分类Dev

在iOS中为Storyboard指定应用程序委托

来自分类Dev

应用程序委托中的iOS弹出消息?

来自分类Dev

在Angular中调用外部应用程序

来自分类Dev

从移动应用程序中调用方法

来自分类Dev

如何在iOS编程中调用委托?如果我从不调用代码,应用程序如何知道应在何时运行代码?

来自分类Dev

如何对iOS应用程序委托方法的调用进行单元测试?

来自分类Dev

为什么SpriteKit在运行应用程序时在应用程序委托类中显示威胁?

来自分类Dev

将 iBeacon 监控逻辑放在应用程序委托中以便在应用程序会话期间存活是否明智?

来自分类Dev

如何处理应用程序委托中的UIViewcontroller中的通知?

来自分类Dev

如何在 swift 4 中访问应用程序委托中的视图控制器功能

来自分类Dev

UIWebView为什么不在我的应用程序委托中的applicationWillTerminate:处加载NSURLRequest?

来自分类Dev

在应用程序委托中获取主窗口控制器的实例

来自分类Dev

如何保持启动画面直到应用程序委托中的过程结束?

来自分类Dev

在App.swift文件中的何处放置应用程序委托代码?

来自分类Dev

实体在我的视图控制器中为nil,但不是应用程序委托

来自分类Dev

如何在应用程序委托(obj-c)中添加UIAlertController

来自分类Dev

在应用程序委托中添加的视图控制器未出现

来自分类Dev

在快速应用程序中两次调用应用程序变量

来自分类Dev

在其他应用程序模板中调用应用程序模板

来自分类Dev

来自Servlet的RemoteApi调用未加载到本地应用程序引擎应用程序中

来自分类Dev

主页按钮和ApplicationState。重新启动应用程序时会调用哪种委托方法?

Related 相关文章

  1. 1

    从应用程序委托中调用UIViewController方法

  2. 2

    从应用程序委托在活动视图的类中调用函数

  3. 3

    调用委托后应用程序崩溃

  4. 4

    从视图控制器调用应用程序委托方法

  5. 5

    未调用应用程序委托,project.pbxproj损坏

  6. 6

    从uitableview cellForRowAtIndexPath委托中删除行时,应用程序崩溃

  7. 7

    在应用程序委托中更改背景颜色

  8. 8

    从应用程序委托中检索managedObjectContext时崩溃

  9. 9

    在iOS中为Storyboard指定应用程序委托

  10. 10

    应用程序委托中的iOS弹出消息?

  11. 11

    在Angular中调用外部应用程序

  12. 12

    从移动应用程序中调用方法

  13. 13

    如何在iOS编程中调用委托?如果我从不调用代码,应用程序如何知道应在何时运行代码?

  14. 14

    如何对iOS应用程序委托方法的调用进行单元测试?

  15. 15

    为什么SpriteKit在运行应用程序时在应用程序委托类中显示威胁?

  16. 16

    将 iBeacon 监控逻辑放在应用程序委托中以便在应用程序会话期间存活是否明智?

  17. 17

    如何处理应用程序委托中的UIViewcontroller中的通知?

  18. 18

    如何在 swift 4 中访问应用程序委托中的视图控制器功能

  19. 19

    UIWebView为什么不在我的应用程序委托中的applicationWillTerminate:处加载NSURLRequest?

  20. 20

    在应用程序委托中获取主窗口控制器的实例

  21. 21

    如何保持启动画面直到应用程序委托中的过程结束?

  22. 22

    在App.swift文件中的何处放置应用程序委托代码?

  23. 23

    实体在我的视图控制器中为nil,但不是应用程序委托

  24. 24

    如何在应用程序委托(obj-c)中添加UIAlertController

  25. 25

    在应用程序委托中添加的视图控制器未出现

  26. 26

    在快速应用程序中两次调用应用程序变量

  27. 27

    在其他应用程序模板中调用应用程序模板

  28. 28

    来自Servlet的RemoteApi调用未加载到本地应用程序引擎应用程序中

  29. 29

    主页按钮和ApplicationState。重新启动应用程序时会调用哪种委托方法?

热门标签

归档