Search code examples
objective-cios9avplayeravplayerviewcontroller

Impossible to play a video with AVPlayer


I've been through all the posts in StackOverflow but I can't get a full example of how to get a video from the bundle and reproduce it in a controller.

I've tried many things but my screen appeared blank or black.

In the last amend, my video remains like this:

enter image description here

no error is thrown on the log. This is my code:

.h (please ignore the name of the controller, it will be finally a camera)

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>

@interface NativeCameraViewController : UIViewController
@end

.m

#import "NativeCameraViewController.h"

@interface NativeCameraViewController ()

@property (nonatomic, retain) AVPlayerViewController *avPlayerViewcontroller;

@end

@implementation NativeCameraViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIView *view = self.view;

    NSString *stringPath = [[NSBundle mainBundle]pathForResource:@"video" ofType:@"mov"];


    NSURL *fileURL = [NSURL fileURLWithPath:stringPath];

    AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];


    playerViewController.player = [AVPlayer playerWithURL:fileURL];

    self.avPlayerViewcontroller = playerViewController;

    [self resizePlayerToViewSize];

    [view addSubview:playerViewController.view];

    view.autoresizesSubviews = TRUE;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


- (void) resizePlayerToViewSize
{
    CGRect frame = self.view.frame;

    NSLog(@"frame size %d, %d", (int)frame.size.width, (int)frame.size.height);

    self.avPlayerViewcontroller.view.frame = frame;
}


@end

and that's what I've got so far. My video is correctly on the Bundle, called video.mov:

enter image description here

I've tried both linking and copying. Same result.

What am I doing wrong??

Thank you very much in advance.


I'd like to avoid using MPMoviePlayerController since it's deprecated in iOS9


Solution

  • It was actually my fault...

    I was trying to reproduce an alias.

    When you have 20.000 videos and 30.000 resources this things happen.