我有一个名为Intro.m4v
的视频文件,该视频文件在我的应用目标上具有目标会员资格(视频本身直接来自iPhone,所以我很确定它的iPhone - 支持)。
我尝试按如下方式播放视频(self.videoContainer
是我的视图控制器内的全屏视图,并经过双重检查,它不是nil
。此外,播放器和播放器层是我的视图控制器类中强烈引用的实例变量):
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
player = [AVPlayer playerWithURL:[NSURL fileURLWithPath:@"Intro.m4v"]];
playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
playerLayer.frame = self.videoContainer.layer.frame;
[self.videoContainer.layer addSublayer:playerLayer];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[player play];
}
-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
playerLayer.frame = self.videoContainer.layer.frame;
}
但是,什么都没有播放。我所看到的只是我的视频容器视图的背景颜色(以及那种方式前面的所有视图)。我做错了什么?
答案 0 :(得分:2)
如果您的视频是捆绑在一起,您的网址应该是这样的:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Intro" ofType:@"m4v"];
NSURL *yourVideoUrl = [NSURL fileURLWithPath:path];
答案 1 :(得分:1)
哎呀自己发现了这个问题。我使用[NSURL fileURLWithPath:@"Intro.m4v"]
而我必须使用[NSBundle mainBundle] URLForResource:@"Intro" withExtension:@"m4v"]
。
修复网址解决了问题。
答案 2 :(得分:-1)
试试这个
func playVideo(urlString: String, location : Int) {
let videoURL = URL(string: urlString)
let player = AVPlayer(url: videoURL!)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
}