簡體   English   中英

Swift 隱藏視圖 AVPlayerViewController

[英]Swift hide view AVPlayerViewController

我想知道如何隱藏 AVPlayer 的視圖。

guard let url = URL(string: "http://stream.radiomedia.com.au:8006/stream.m3u") else {
  return
}
// Create a new AVPlayer and associate it with the player view
let player = AVPlayer(url: url)

// Create a new AVPlayerViewController and pass it a reference to the player.
let controller = AVPlayerViewController()
controller.player = player

// Modally present the player and call the player's play() method when complete.
present(controller, animated: true) {
  player.play()
}

我想隱藏的是它顯示的黑屏,因為這只是音頻。 沒有視覺。

所以我想隱藏查看器不一定是控件。

如果您不需要 UI,則可以在沒有AVPlayerViewController的情況下使用AVPlayer

您不需要AVPlayerViewController來播放音頻。 您可以創建自己的視圖 controller 並將AVPlayerAVPlayerLayer一起使用。

let player: AVPlayer = AVPlayer()
let playerLayer = AVPlayerLayer(player: self.player)
YOUR_VIEW.layer.addSublayer(self.playerLayer) 

// Play the audio
let audioURL = URL(string: url)
let playerItem = AVPlayerItem(url: audioURL)
player.replaceCurrentItem(with: playerItem)
player.play() 

如果您願意,可以隱藏YOUR_VIEW視圖,如果要播放視頻,可以顯示它。 如果player有強參考會更好,所以我建議將其存儲在 class 變量中。 還要在AVPlayerAVPlayer.Status.readyToPlay事件上調用player.play() 您可以在Apple 的文檔中了解更多信息

您可以更新播放器的背景顏色

let controller = AVPlayerViewController()
controller.contentOverlayView.backgroundColor = UIColor.white 

如果您不想要像AVPlayerViewController這樣的 UI,您可以簡單地使用AVPlayerLayer並將其添加為view's sublayer

guard let url = URL(string: "http://stream.radiomedia.com.au:8006/stream.m3u") else {
    return
}

let player = AVPlayer(url: url)

let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = view.bounds
playerLayer.videoGravity = .resizeAspect
playerLayer.contentsGravity = .resizeAspect
view.layer.insertSublayer(playerLayer, at: 0)

player.play()

AVPlayerLayer將播放與AVPlayerViewController相同的視頻。

此外,您可以將playerLayer添加到任何視圖的圖層。 無論是主視圖還是任何自定義視圖。

有關更多信息,您可以參考鏈接 - https://medium.com/free-code-camp/how-to-set-up-video-streaming-in-your-app-with-avplayer-7dc21bb82f3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM