在视图中循环播放视频
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://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 后,只需将播放器 属性 的视图分配给您的播放器。现在不需要对图层进行技巧:-)
我想简单完整的例子胜过一千字。所以我准备了一个小项目: