Objective c 在OSX中播放视频

Objective c 在OSX中播放视频,objective-c,macos,video,xcode5.1,Objective C,Macos,Video,Xcode5.1,我正在开发一款mac应用程序,需要在应用程序中播放教程视频。 当用户按下应用程序上的按钮时,它应该播放视频 下面是与xcode 5.1不兼容的xcode 4.3的代码 @synthesize movieView; -(IBAction)playVideo:(id)sender { NSString *videoPath = [[NSBundle mainBundle] pathForResource:"video name" ofType:@"mp4"; NSURL *videoURL = [N

我正在开发一款mac应用程序,需要在应用程序中播放教程视频。 当用户按下应用程序上的按钮时,它应该播放视频 下面是与xcode 5.1不兼容的xcode 4.3的代码

@synthesize movieView;
-(IBAction)playVideo:(id)sender {
NSString *videoPath = [[NSBundle mainBundle] pathForResource:"video name" ofType:@"mp4";
NSURL *videoURL = [NSURL fileURLWithPath: videoPath];
NSError *error = nil;

NSDictionary *attrib = [NSDictionary dictionaryWithObjectsAndKeys:
                       [NSNumber  numberWithBool:YES],
                        QTMovieOpenForPlaybackAttribute,
                        videoURL, QTMovieURLAttribute,
                        [NSNumber numberWithBool:YES],
                        QTMovieOpenAsyncRequiredAttribute, nil];
QTMovie *newMovie = [[QTMovie alloc] initWithAttributes: attrib error: &error];
[movieView setMovie:newMovie];
[movieView play:newMovie];

}

我正在为osx 10.8使用xcode 5.1,苹果开始了从QuickTime API(包括QTKit)到AVFoundation(从osx 10.7开始)的过渡。关于这一转变,有一个重要的原因

在现代Mac应用程序中播放视频的最简单方式是通过10.9版开始提供的AVKit。 要获得显示与应用程序捆绑的视频的基本视图,您必须:

将AVKit和AVFoundation添加到项目的链接框架和库部分 将AVPlayerView拖动到Interface Builder中的窗口 将插座连接到其中一个控制器中的播放器视图 实例化从捆绑包加载视频资源的AVPlayer 这是加载资产的代码:

NSURL* videoURL = [[NSBundle mainBundle] URLForResource:@"video name" withExtension:@"mp4"];
self.playerView.player = [AVPlayer playerWithURL:videoURL];

从OSX10.7开始,苹果开始了从QuickTime API(包括QTKit)到AVFoundation的过渡。关于这一转变,有一个重要的原因

在现代Mac应用程序中播放视频的最简单方式是通过10.9版开始提供的AVKit。 要获得显示与应用程序捆绑的视频的基本视图,您必须:

将AVKit和AVFoundation添加到项目的链接框架和库部分 将AVPlayerView拖动到Interface Builder中的窗口 将插座连接到其中一个控制器中的播放器视图 实例化从捆绑包加载视频资源的AVPlayer 这是加载资产的代码:

NSURL* videoURL = [[NSBundle mainBundle] URLForResource:@"video name" withExtension:@"mp4"];
self.playerView.player = [AVPlayer playerWithURL:videoURL];

托马斯用Swift 5回答

if let videoURL = Bundle.main.url(forResource: "video",
                                  withExtension: "mp4") {
  self.playerView.player = AVPlayer.init(url: videoURL)
  self.playerView.player?.play()
}

托马斯用Swift 5回答

if let videoURL = Bundle.main.url(forResource: "video",
                                  withExtension: "mp4") {
  self.playerView.player = AVPlayer.init(url: videoURL)
  self.playerView.player?.play()
}

如果窗口加载,如何在自动播放中播放视频?如果窗口加载,如何在自动播放中播放视频?