メインメニューを開く

Xamarin.MacのAVPlayerViewでオーバーレイ表示する

AVPlayerViewには「ContentOverlayViewプロパティ」というズバリなものがあるので、NSViewの派生クラスをそこにAddSubviewしてやればよい。

なお、Interface Builderで貼り付けたAVPlayerViewのContentOverlayViewプロパティが有効になるのはViewControllerのViewDidAppear以降であり、AwakeFromNibやViewDidLoadの段階ではnullなので注意すること。

public override void ViewDidAppear()
{
    // NSView派生クラスを作って
    var overlay = new NSView() {
        // AvPlayerViewと同じサイズにする
        Frame = avPlayerView.ContentOverlayView.Frame,
        // 縦横ともにオートリサイズ
        AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.HeightSizable,
    };

    // ContentOverlayViewに突っ込む
    avPlayerView.ContentOverlayView.AddSubview(overlay);
}

関連項目編集