循环播放视频

时间:2020-05-05 20:38:33

标签: objective-c xcode macos cocoa video

我是新来的,所以挂在那里。

我正在关注本教程: 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中却让我很头疼。

1 个答案:

答案 0 :(得分:1)

当前的X代码允许直接在XIB中播放AVPlayerView,并且在创建AVPlayer之后,只需将视图的播放器属性分配给您的播放器即可。无需在层上添加技巧:-)

我认为一个简单完整的例子值得一千个单词。所以我准备了一个小项目:

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