【问题标题】:Impossible to play a video with AVPlayer无法使用 AVPlayer 播放视频
【发布时间】:2015-11-12 22:40:55
【问题描述】:

我已经阅读了 StackOverflow 中的所有帖子,但我无法获得有关如何从捆绑包中获取视频并在控制器中重现它的完整示例。

我尝试了很多方法,但我的屏幕显示为空白或黑色。

最后,我的视频仍然是这样的:

日志中没有错误。这是我的代码:

.h(请忽略控制器的名称,最终会是相机)

#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

这就是我到目前为止所得到的。 我的视频在 Bundle 中是正确的,名为 video.mov

我已经尝试过链接和复制。结果一样。

我做错了什么??

非常感谢您。


我想避免使用MPMoviePlayerController,因为它在 iOS9 中已被弃用

【问题讨论】:

  • 您的视图中没有完成按钮如何添加

标签: objective-c ios9 avplayer avplayerviewcontroller


【解决方案1】:

其实是我的错……

我试图重现一个别名

当您拥有 20.000 个视频和 30.000 个资源时,就会发生这种情况。

【讨论】:

    【解决方案2】:

    不要使用 AVPlayer,而是使用 MPMoviePlayerController 类:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"]; 
    
    NSURL *url = [NSURL fileURLWithPath:path];
    
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    
    [player play];
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多