L oop Видео в просмотре - PullRequest
0 голосов
/ 05 мая 2020

Я новенький, так что держись.

Я следую этому руководству: https://www.youtube.com/watch?v=5iHglLK957s

Существует множество примеров для зацикливания видео в ios, но, похоже, не удается получить видео на l oop с xib с использованием macos Obj- C.

Я создал класс Cocoa C, и он создает .h .m и .xib. Я создаю действие IB из представления .xib в .h и называю его видеопросмотром.

@property (assign) IBOutlet NSView *videoview;

В .MI добавьте:

#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 просто пустое.

То, что я действительно пытаюсь сделать, это просто бесшовное l oop видео в xib с использованием MacOS и Obj- C. Не могу понять.

Есть предложения? Кажется, зацикливание видео в окне должно быть легким делом, но в MacOS меня это сильно сбивает.

1 Ответ

1 голос
/ 06 мая 2020

Текущий код X позволяет воспроизводить AVPlayerView непосредственно в XIB, и после создания AVPlayer просто назначьте свойство просмотра для вашего проигрывателя. Не надо трюков со слоями сейчас :-)

Полагаю, простой полный пример стоит тысячи слов. Итак, я подготовил небольшой проект:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...