[英]View unresponsive after AVPlayerViewController dismissed - Swift
[英]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 並將AVPlayer
與AVPlayerLayer
一起使用。
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 變量中。 還要在AVPlayer
的AVPlayer.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.