Belated follow-up to my own question. The following code works, and is not much different than that already posted. So my problem must have been in the storyboard.
import AVKit // macOS & iOS
class ViewController_myProduction: NSViewController {
@IBOutlet var myMOV: AVPlayerView!
override func viewDidLoad() {
super.viewDidLoad()
let playerView = AVPlayerView()
playerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(playerView)
if #available(macOS 11.0, *) {
playerView.leadingAnchor.constraint (equalTo: view.safeAreaLayoutGuide.leadingAnchor ).isActive = true
playerView.trailingAnchor.constraint (equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
playerView.topAnchor.constraint (equalTo: view.safeAreaLayoutGuide.topAnchor ).isActive = true
playerView.bottomAnchor.constraint (equalTo: view.safeAreaLayoutGuide.bottomAnchor ).isActive = true
} else {
// Fallback on earlier versions
}
playerView.controlsStyle = .floating
playerView.showsFrameSteppingButtons = true
playerView.showsFullScreenToggleButton = true
guard let path = Bundle.main.url(forResource: "myProduction", withExtension: "mov") else { return }
let player = AVPlayer(url: path)
playerView.player = player
playerView.player?.play()
}
}
note to self: code-block + Edit:"Paste and Match Style"
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: