2017-03-24 17 views
1

私はapple tvで作業しています。 UIViewController内にUIViewがあります。私は私のUIViewのサブビューとしてAVPlayerViewControllerを追加しています。 UIViewのフレームはCGRect(x:50、y:50、幅:1344、高さ:756)です。私はAVPlayerViewControllerフレームをUIViewのフレームと同じに設定しています。ビュー内のAVPlayerViewControllerが再生コントロールを表示していません

問題は、動画がフレームで正常に再生されますが、一時停止、再生、転送などのコントロールは非表示で動作しないことです。しかし、フレームをCGRect(x:0、y:0、width:1920、height:1080)に設定すると、コントロールが表示され、動作します。

私のコードは以下のとおりである:

let url = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") 
    let item = AVPlayerItem(url: url!)   
    self.player = AVPlayer(playerItem: item) 
    self.avplayerController = AVPlayerViewController() 
    self.avplayerController.player = self.player 
    self.avplayerController.view.frame = videoPreviewLayer.frame 
    self.avplayerController.showsPlaybackControls = true 
    self.avplayerController.requiresLinearPlayback = true 

    self.addChildViewController(self.avplayerController) 
    self.view.addSubview(self.avplayerController.view) 

    self.avpController.player?.play() 

助けてください。

答えて

2

これは正常な動作です:

AVPlayerViewControllerをするときフルスクリーンで、 フル再生エクスペリエンス(スクラブ、情報パネルへのアクセスなど)が利用可能なすべての であるように設計されています。スペースがフルスクリーンよりも小さい場合、画面上のいくつかのインタラクティブな要素の1つだけであるという仮定は であり、したがって、 コントロールとしてのタッチ面イベントを吸収してはならない。

あなたはこのスレッドでこれについての詳細を読むことができます:https://forums.developer.apple.com/thread/19526

+0

ねえクリアランスデビッドに感謝を。それはスペースがフルスクリーンよりも小さいときにavplayerのコントロールを表示することができますか? – Ruchi

+0

@Ruchiはい、AVPlayerのインスタンスからカスタムビューを追加して、AVPlayerのプロパティから情報を取得することはできますが、ネイティブのAVPlayerViewControllerを使用することはできません。 –

+0

そのためにサードパーティのライブラリやフレームワークを知っていますか?私は検索しましたが、1つを取得できませんでした。 – Ruchi

関連する問題