WKWEbView Скрыть элементы управления родного плеера в iOS - PullRequest
0 голосов
/ 21 октября 2019

Я воспроизводлю видео с YouTube в своем приложении для iOS. проблема, с которой я сталкиваюсь, заключается в том, что при воспроизведении видео оно воспроизводится в собственном видеопроигрывателе для iOS.

Это нормально для меня, но я хочу отключить элементы управления в собственном проигрывателе, чтобы пользователь не мог пропустить видео.

Возможно ли это?

Это мой код:

func setUpUI() {
        let webConfiguration = WKWebViewConfiguration()
        webConfiguration.allowsInlineMediaPlayback = true
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        webView.backgroundColor = .red 
        self.backgroundColor = .white
        webView.translatesAutoresizingMaskIntoConstraints = false
        self.contentView.addSubview(mainContainer)
        mainContainer.addSubview(lineSeparator)
        mainContainer.addSubview(bottomLineSeparator)
        mainContainer.addSubview(videoIcon)
        mainContainer.addSubview(watchItAll)
        mainContainer.addSubview(videoContainer)
        videoContainer.addSubview(videoTitleContainer)
        videoContainer.addSubview(webView)
        videoTitleContainer.addSubview(videoTitleLabel)

        lineSeparator.backgroundColor = .lightGreyBkgrnd
        lineSeparator.layer.borderColor = UIColor.lightGreyBkgrnd.cgColor
        lineSeparator.layer.borderWidth = 3

        videoContainer.layer.borderColor = UIColor.dimGray.cgColor
        videoContainer.layer.borderWidth = 2

        bottomLineSeparator.backgroundColor = .lightGreyBkgrnd
        bottomLineSeparator.layer.borderColor = UIColor.lightGreyBkgrnd.cgColor
        bottomLineSeparator.layer.borderWidth = 3

        self.videoTitleLabel.font = UIFont.preferredFont(forTextStyle: .headline)
        self.videoTitleLabel.textColor = UIColor.tuftsBlue

        videoPlayerSuperView.translatesAutoresizingMaskIntoConstraints = false
        self.watchItAll.font = UIFont.preferredFont(forTextStyle: .body)
        self.watchItAll.numberOfLines = 0

        //videoContainer.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(videoTapped)))

        let html = """
        <iframe width="100%" height="100%" src="https://www.youtube.com/embed/0oBx7Jg4m-o?autoplay=0&showinfo&controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
        """
        webView.loadHTMLString(html, baseURL: nil)
    }

1 Ответ

0 голосов
/ 21 октября 2019

Если вы используете AVPlayerViewController для воспроизведения видео, у него есть свойство

open var showsPlaybackControlls: Bool

, которое можно установить на NO , чтобы скрыть пользовательские элементы управления.

ТакжеЕсли вы выделите класс и выберете «Перейти к определению», вы увидите другие функции и свойства класса, которые вы, возможно, захотите использовать.

...