0

I'm trying to keep the video in AVPlayer playing when app goes from background to foreground, but it shown blank. I use Swift. I've found a lot of examples, but nothing works.

configurePlayer function is I've create for that but I don't know what's the problem

func configurePlayer(_ url: URL?){
        guard let url = url else { return }
        let asset = AVURLAsset(url: url)

        let playerItem = AVPlayerItem(asset: asset)
        playerItem.preferredForwardBufferDuration = 1

        queuePlayer = AVQueuePlayer(playerItem: playerItem)
        queuePlayer?.replaceCurrentItem(with: playerItem)

        self.observer = playerItem.observe(.status, options: [.initial, .new], changeHandler: { item, _ in
            let status = item.status
            // Switch over the status
            switch status {
            case .readyToPlay:
                // Player item is ready to play.
                print("Status: readyToPlay")
            case .failed:
                // Player item failed. See error.
                self.pause()
              
                print("Status: failed Error: " + item.error!.localizedDescription )
            case .unknown:
                // Player item is not yet ready.bn m
                print("Status: unknown")
            @unknown default:
                fatalError("Status is not yet ready to present")
            }
        })


        if self.queuePlayer?.currentItem != nil {
            print("State: Add playerLooper")
            self.playerLooper = AVPlayerLooper(player: self.queuePlayer!, templateItem: self.queuePlayer!.currentItem!)
        }
        avPlayerLayer = AVPlayerLayer(player: queuePlayer)
        avPlayerLayer.videoGravity = .resizeAspect
        self.layer.addSublayer(self.avPlayerLayer)
        self.avPlayerLayer.player = self.queuePlayer
    }

Above is my code

0 Answers0