AVFoundation によって再生されているビデオの上にオーバーレイされる NSView をセットアップしようとしています。ネイティブのクイックタイム プレーヤーに似たものを作成したいだけです。OS X アプリケーションでこれを実行しようとしています。
ビデオを再生するビューとコントロールを含むビューの 2 つのサブビューを持つ NSView をセットアップしました。ビデオの再生を開始するたびに、コントロール ビューがビデオ再生ビューの後ろに押し出され、コントロール ビューが役に立たなくなります。
この問題は、ビュー階層で同じレベルにある 2 つのサブビューを重ねることに関係していると思います。この問題は、コントロール ビューをビデオ再生ビューのサブビューにするという解決策につながります。問題は、AVFoundation でビデオを再生するには、ビデオ再生ビューがレイヤー ホスティング ビューになる必要があり、サブビューを持つことができないことです。
私が問題を解決しようとしたこと:
addSubview:positioned:relativeTo:
ビューを並べ替えるために使用します。- スーパー ビューとコントロール ビュー レイヤーを裏打ちします。
これらのソリューションを間違って使用している可能性があるため、うまくいくと思われる場合はお知らせください。
これが、ビデオ再生ビューを設定する方法です。
self.playerItem = [AVPlayerItem playerItemWithAsset:self.asset];
[self.playerItem addObserver:self forKeyPath:@"status"
options:0 context:&ItemStatusContext];
self.player = [AVPlayer playerWithPlayerItem:self.playerItem];
self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
[self.playerView setLayer:self.playerLayer];
[self.playerView setWantsLayer:YES];
これは、動画再生でよくあることのように思われるので、解決策をご存知の方がいらっしゃいましたら教えてください。ありがとう!