I tried to use AVPlayerViewController
play mp4 video. I use "http url", it can play, but when I use fileUrl
, it does not work...
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"mp4ForDownloadTest" ofType:@"mp4"];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSURL *url = [NSURL fileURLWithPath:filePath isDirectory:NO];
AVPlayerViewController *playerVC = [[AVPlayerViewController alloc] init];
AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:url options:nil];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
playerVC.player = player;
[self presentViewController:playerVC animated:YES completion:^{
[player play];
}];
}
Try this:
guard let path = NSBundle.mainBundle().pathForResource("drum", ofType:"mp4") else {
break
}
let url = NSURL(fileURLWithPath: path)
self.loadPlayer(url)
then:
private func loadPlayer(url: NSURL) {
// present video window
let playerItem = AVPlayerItem(URL: url)
let player = AVPlayer.init(playerItem: playerItem)
self.playerViewController.player = player
self.view.addSubview(self.playerViewController.view)
self.videoControlView.alpha = 1.0
self.setupPlayerObserver()
self.playPlayer()
self.setSlider()
}