为什么这个Objective-C代码不能播放AVPlayerViewControllervideo?

在此处输入图像描述 两者都在viewDidLoad()中。 这个objective-c源文件出了什么问题? 快速版本就像一个魅力…… Xcode ver。 8.2 iOS 10

斯威夫特(OK):

let path : String = Bundle.main.path(forResource: "charlie", ofType: "mp4")! let movieurl : URL = URL(fileURLWithPath: path) let movie : AVPlayerViewController = AVPlayerViewController() movie.view.frame = self.view.bounds let player : AVPlayer = AVPlayer(url: movieurl) movie.player = player self.view.addSubview(movie.view) player.play() 

Objective-C(不会显示/播放video):

  AVPlayerViewController* movie; AVPlayer* player; NSString *path = [[NSBundle mainBundle] pathForResource:@"charlie" ofType:@"mp4"]; NSURL *url = [NSURL URLWithString:path] ; movie = [[AVPlayerViewController alloc] init]; movie.view.frame = self.view.bounds; player = [[AVPlayer alloc] initWithURL:url]; [movie setPlayer:player]; [self.view addSubview:movie.view]; [player play]; 

 @import AVKit; @import AVFoundation; @property (nonatomic) AVPlayer *avPlayer; @property (nonatomic) AVPlayerViewController* avPlayerView; NSString *path = [[NSBundle mainBundle] pathForResource:@"Video1" ofType:@"mp4"]; NSURL *url = [[NSURL alloc] initFileURLWithPath: path]; AVAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil]; AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset]; avPlayer = [AVPlayer playerWithPlayerItem:anItem]; [avPlayer addObserver:self forKeyPath:@"status" options:0 context:nil]; self.avPlayerView = [[AVPlayerViewController alloc] init]; self.avPlayerView.view.frame = self.view.bounds; [self.avPlayerView setPlayer:_avPlayer]; [self.view addSubview:_avPlayerView.view]; - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (object == avPlayer && [keyPath isEqualToString:@"status"]) { if (avPlayer.status == AVPlayerStatusFailed) { NSLog(@"AVPlayer Failed"); } else if (avPlayer.status == AVPlayerStatusReadyToPlay) { NSLog(@"AVPlayer Ready to Play"); } else if (avPlayer.status == AVPlayerItemStatusUnknown) { NSLog(@"AVPlayer Unknown"); } } } -(IBAction) BtnPlay:(id)sender { [avPlayer play]; } -(IBAction) BtnPause:(id)sender { [avPlayer pause]; } 

试试我的代码。 如果我的代码有任何问题发表评论。 谢谢。 快乐的编码。

NSString * path = [[NSBundle mainBundle] pathForResource:@“charlie”ofType:@“mp4”];

尝试

使用[NSURL fileURLWithPath :path]而不是[NSURL URLWithString :path]

[NSURL fileURLWithPath]

要么

[[NSBundle mainBundle] URLForResource:@“charlie”withExtension:@“mp4”]