我是新来的,所以挂在那里。
我正在关注本教程: https://www.youtube.com/watch?v=5iHglLK957s
有很多在ios中循环播放视频的示例,但似乎无法使用macOS Obj-C使视频与xib循环播放。
我创建了Cocoa C类,并创建了.h .m和.xib。 我从.h的.xib视图创建IB操作,并将其命名为视频视图。
@property (assign) IBOutlet NSView *videoview;
在.M中,我添加:
#import "VideoTest.h"
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>
@interface VideoTest ()
{
AVPlayer *player;
}
@end
@implementation VideoTest
- (void)windowDidLoad {
[super windowDidLoad];
NSString *strpath=[[NSBundle mainBundle]pathForResource:@"TestVideo" ofType:@"mp4"];
NSURL *URL=[NSURL fileURLWithPath:strpath];
AVPlayerItem *item=[AVPlayerItem playerItemWithURL:URL];
player=[AVPlayerItem playerWithPlayerItem:item];
player.volume=2.0;
AVPlayerLayer *layer1=[AVPlayerLayer playerLayerWithPlayer:player];
layer1.videoGravity=AVLayerVideoGravityResizeAspectFill;
layer1.frame=_videoview.layer.bounds;
[_videoview.layer addSublayer:layer1];
[player play];
}
@end
TestVideo.mp4已添加到项目中。还添加了AVKit和AVfoundation。
构建时,xib窗口只是空白。
我真正想做的只是使用MacOS和Obj-C在xib中无缝循环视频。似乎无法理解。
有什么建议吗?似乎在窗口中循环播放视频应该很容易,但是在MacOS中却让我很头疼。
答案 0 :(得分:1)
当前的X代码允许直接在XIB中播放AVPlayerView,并且在创建AVPlayer之后,只需将视图的播放器属性分配给您的播放器即可。无需在层上添加技巧:-)
我认为一个简单完整的例子值得一千个单词。所以我准备了一个小项目: