在视图中循环播放视频

Loop Video in View

我是新来的,所以坚持住。

我正在学习本教程: https://www.youtube.com/watch?v=5iHglLK957s

ios 中有大量循环视频的示例,但似乎无法使用 macos Obj-C 使视频与 xib 一起循环。

我创建了 Cocoa C Class 并且它创建了 .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 window 只是空白。

我真正想做的只是使用 MacOS 和 Obj-C 在 xib 中无缝循环播放视频。好像看不懂。

有什么建议吗?在 window 中循环播放视频似乎很容易,但在 MacOS 中却让我很难受。

当前的 X 代码允许将 AVPlayerView 直接播放到 XIB 中,并且在创建 AVPlayer 后,只需将播放器 属性 的视图分配给您的播放器。现在不需要对图层进行技巧:-)

我想简单完整的例子胜过一千字。所以我准备了一个小项目:

https://github.com/Voldemarus/VideoPlayerDemo/tree/master