gpt4 book ai didi

cocoa - 开始图形...添加 AVPlayerLayer 到 NSView

转载 作者:行者123 更新时间:2023-12-03 17:03:37 24 4
gpt4 key购买 nike

我看到了一个与我询问的关于如何将 AVPlayerLayer 添加到 NS View 的问题类似的问题,但我看不到完整的源代码来了解它是如何工作的。我的问题的核心是我创建一个玩家对象并使用 move NSURL 初始化它。我创建一个 AVPlayerLayer 对象并使用播放器对其进行初始化。当我尝试将 AVPlayerLayer 添加到自己(我是 NSView)并运行该程序时,我什么也没有得到。

NSURL *movie = [[NSURL alloc]     initWithString:@"file://localhost/Users/matthewmichal/Desktop/A%20Good%20To%20Die%20Hard.mov"];
[player initWithURL:movie];
[self setWantsLayer:YES];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
[self.layer addSublayer:playerLayer];
[player play];

最佳答案

您可能应该考虑阅读 Apple 的 AVFoundation 指南:

https://developer.apple.com/library/ios/DOCUMENTATION/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html

它没有具体讨论 AppKit 和 UIKit 之间的细微差别,但您已经了解了([NSView setWantsLayer:], [NSView addSublayer])。您没有正确执行的操作是注册以观察 AVPlayer 状态属性的更新:

As with AVAsset, though, simply initializing a player item doesn’t necessarily mean it’s ready for immediate playback. You can observe (using key-value observing) an item’s status property to determine if and when it’s ready to play.

假设所有其他事情都是正确的(这很难从您的代码中看出 - 例如,您确定 NSURL 是否正确形成?),这很可能是错误的 - 您之前将图层添加到 NSView玩家已准备好开始游戏。如果没有,那么我会确保您的 NSURL 实际上指向您正在查找的资源。

关于cocoa - 开始图形...添加 AVPlayerLayer 到 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com