Я хочу, чтобы строка состояния была видна во время полноэкранного воспроизведения видео - PullRequest
0 голосов
/ 29 мая 2018

Я хотел бы знать, какой код писать, чтобы показывать строку состояния вверху, пока видео воспроизводится в полноэкранном режиме.Я перепробовал все, что пришло в голову, но строка состояния все еще становится скрытой, когда видео начинает воспроизводиться.

Вот текущий код контроллера представления:

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {
    var playerController = AVPlayerViewController()
    var player:AVPlayer?

    override func viewDidLoad() {
        super.viewDidLoad()

        let  videoString:String? = Bundle.main.path(forResource: "Buspro", ofType: ".mp4")

        if let url = videoString {
            let videoURL = NSURL(fileURLWithPath: url)

            self.player = AVPlayer(url: videoURL as URL)
            self.playerController.player = self.player
        }
    }

    @IBAction func Play(_ sender: Any) {
        self.playerController.showsPlaybackControls = false
        self.present(self.playerController, animated: true, completion: {
            self.playerController.player?.play()
        })
    }
}

1 Ответ

0 голосов
/ 29 мая 2018

AVPlayerViewController - это UIViewController Просто создайте подкласс и переопределите prefersStatusBarHidden

создайте новый файл CustomAVPlayerViewController.Swift

import UIKit
import AVKit

 class CustomAVPlayerViewController: AVPlayerViewController {            
            override var prefersStatusBarHidden: Bool {
                    return false
            }
        }

Тогда по вашему коду:

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {
    var playerController = CustomAVPlayerViewController()
    var player:AVPlayer?

    override func viewDidLoad() {
        super.viewDidLoad()

        let  videoString:String? = Bundle.main.path(forResource: "Buspro", ofType: ".mp4")

        if let url = videoString {
            let videoURL = NSURL(fileURLWithPath: url)

            self.player = AVPlayer(url: videoURL as URL)
            self.playerController.player = self.player
        }
    }

    @IBAction func Play(_ sender: Any) {
        self.playerController.showsPlaybackControls = false
        self.present(self.playerController, animated: true, completion: {
            self.playerController.player?.play()
        })
    }
}
...