これは私の最初の投稿であり、私についての言葉はほとんどありません。通常、私はものをデザインしていますが(UIは主に)、私は本当にあなたをより良く理解するためのプログラミングに飛躍したいと思っていました。だから私は行くために小さなアプリを作ることにしました。AVPlayer Swift:コントロールを非表示にし、ランドスケープビューを無効にするにはどうすればよいですか?
私は数時間これを理解しようとしていました。これはこれまでの私の最初のアプリプロジェクトであり、私の新しさを謝ります。
私がしたいのは、AVPlayerのコントロールを非表示にして横長表示を無効にすることですが、どこに配置するのかわかりません。showsPlaybackControls = false
。
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
private var firstAppear = true
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if firstAppear {
do {
try playVideo()
firstAppear = false
} catch AppError.InvalidResource(let name, let type) {
debugPrint("Could not find resource \(name).\(type)")
} catch {
debugPrint("Generic error")
}
}
}
private func playVideo() throws {
guard let path = NSBundle.mainBundle().pathForResource("video", ofType:"mp4") else {
throw AppError.InvalidResource("video", "m4v")
}
let player = AVPlayer(URL: NSURL(fileURLWithPath: path))
let playerController = AVPlayerViewController()
playerController.player = player
self.presentViewController(playerController, animated: false) {
player.play()
}
}
}
enum AppError : ErrorType {
case InvalidResource(String, String)
}
ありがとうEmilio! –
これはうまくいくかもしれませんが、AVPlayerViewControllerをサブクラス化することは推奨されていないかサポートされていません。Appleのdocs:https://developer.apple.com/documentation/avkit/avplayerviewcontroller – taykay08
@ taykay08代わりの解決策で私の答えを更新しました。 – EmilioPelaez