无法使用 AVPlayer 播放视频
Impossible to play a video with AVPlayer
我浏览了 Whosebug 中的所有帖子,但我无法获得有关如何从捆绑包中获取视频并在控制器中重现它的完整示例。
我尝试了很多方法,但我的屏幕显示为空白或黑色。
上次修改后,我的视频还是这样:
日志中没有错误。这是我的代码:
.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
这就是我到目前为止所得到的。
我的视频在捆绑包中正确显示,名为 video.mov:
链接和复制我都试过了。同样的结果。
我做错了什么??
非常感谢您。
我想避免使用 MPMoviePlayerController
,因为它在 iOS9
中已弃用
不使用 AVPlayer,而是使用 MPMoviePlayerController class:
NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"];
NSURL *url = [NSURL fileURLWithPath:path];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[player play];
原来是我的错...
我试图重现一个别名。
当您拥有 20.000 个视频和 30.000 个资源时,就会发生这种情况。
我浏览了 Whosebug 中的所有帖子,但我无法获得有关如何从捆绑包中获取视频并在控制器中重现它的完整示例。
我尝试了很多方法,但我的屏幕显示为空白或黑色。
上次修改后,我的视频还是这样:
日志中没有错误。这是我的代码:
.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
这就是我到目前为止所得到的。 我的视频在捆绑包中正确显示,名为 video.mov:
链接和复制我都试过了。同样的结果。
我做错了什么??
非常感谢您。
我想避免使用 MPMoviePlayerController
,因为它在 iOS9
不使用 AVPlayer,而是使用 MPMoviePlayerController class:
NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"];
NSURL *url = [NSURL fileURLWithPath:path];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[player play];
原来是我的错...
我试图重现一个别名。
当您拥有 20.000 个视频和 30.000 个资源时,就会发生这种情况。