更改 AVPlayer 视频 MacOS Objective-C Cocoa
Change AVPlayer Video MacOS Objective-C Cocoa
对于 MacOS,不是 iOS。我正在 XIB 的 AVPlayerView 中播放视频。只是尝试播放视频。我希望能够从文件菜单中选择一个 selection(例如文件/视频/视频 1、视频 2、视频 3 等)并在 [=23= 时更改 XIB 中当前正在播放的视频] 菜单项。
目前我正在用这个播放视频:
- (void)windowDidChangeOcclusionState:(NSNotification *)notification
{
if (self.window.occlusionState & NSWindowOcclusionStateVisible)
{
loopPlayer = YES;
[_aspectView setAspectRatio:NSMakeSize(16, 9)];
NSBundle *mb = [NSBundle mainBundle];
NSURL *demoURL = [mb URLForResource:@"Video1" withExtension:@"mp4"];
player = [[AVPlayer alloc] initWithURL:demoURL];
self.playerView.player = player;
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(movieEndDetected:)
name:@"AVPlayerItemDidPlayToEndTimeNotification"
object:player.currentItem];
[player play];
}
else
{
[player pause];
[player seekToTime:kCMTimeZero];
}
}
循环播放视频:
- (void) movieEndDetected:(NSNotification *) note
{
if (loopPlayer) {
[player seekToTime:kCMTimeZero];
[player play];
}
}
但我想通过选择菜单按钮来动态更改 XIB 中播放的视频。任何想法如何做到这一点?我听说 AVPlayerQueue 可能适用于这种事情,但我是新手,无法在 MacOS 上使用它。
我的解决方案是在 xibs 中使用许多 avplayer 视图,当一个从菜单项打开时,关闭另一个。
- (void)Visual02Menu:(id)sender {
if (!visual02Window) {
visual02Window = [[Visual02 alloc] initWithWindowNibName:@"Visual02"]; }
[visual01Window close];
[visual02Window showWindow:self];
对于 MacOS,不是 iOS。我正在 XIB 的 AVPlayerView 中播放视频。只是尝试播放视频。我希望能够从文件菜单中选择一个 selection(例如文件/视频/视频 1、视频 2、视频 3 等)并在 [=23= 时更改 XIB 中当前正在播放的视频] 菜单项。
目前我正在用这个播放视频:
- (void)windowDidChangeOcclusionState:(NSNotification *)notification
{
if (self.window.occlusionState & NSWindowOcclusionStateVisible)
{
loopPlayer = YES;
[_aspectView setAspectRatio:NSMakeSize(16, 9)];
NSBundle *mb = [NSBundle mainBundle];
NSURL *demoURL = [mb URLForResource:@"Video1" withExtension:@"mp4"];
player = [[AVPlayer alloc] initWithURL:demoURL];
self.playerView.player = player;
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(movieEndDetected:)
name:@"AVPlayerItemDidPlayToEndTimeNotification"
object:player.currentItem];
[player play];
}
else
{
[player pause];
[player seekToTime:kCMTimeZero];
}
}
循环播放视频:
- (void) movieEndDetected:(NSNotification *) note
{
if (loopPlayer) {
[player seekToTime:kCMTimeZero];
[player play];
}
}
但我想通过选择菜单按钮来动态更改 XIB 中播放的视频。任何想法如何做到这一点?我听说 AVPlayerQueue 可能适用于这种事情,但我是新手,无法在 MacOS 上使用它。
我的解决方案是在 xibs 中使用许多 avplayer 视图,当一个从菜单项打开时,关闭另一个。
- (void)Visual02Menu:(id)sender {
if (!visual02Window) {
visual02Window = [[Visual02 alloc] initWithWindowNibName:@"Visual02"]; }
[visual01Window close];
[visual02Window showWindow:self];