用于多个视图控制器的 AVPlayer 类

问题描述

我正在使用 AVPlayer 项目来播放直播流(广播应用程序)。一切似乎都在工作,但是,整个代码都在一个视图控制器下,即 PlayerViewController : UIViewController. 因为我将向应用程序添加更多功能并且不想重复用于 AVPlayer 的所有方法。如何使用所有必需的方法为 Swift Class 创建 AVPlayer 并继续在我应用的多个页面(未来的视图控制器)上使用该类实例?

这是加载到 ViewDid Load() 的代码。稍后将添加 Remote Commands 之类的功能。我不想为执行相同任务的单独视图控制器重复代码。

   func configurePlayer(){
        do {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)
            print("AVAudioSession Category Playback OK")
            do {
                try AVAudioSession.sharedInstance().setActive(true)
                print("AVAudioSession is Active")

            } catch let error as NSError {
                print(error.localizedDescription)
            }
        } catch let error as NSError {
            print(error.localizedDescription)
        }
        guard let url = URL(string: station!.url!) else {return}
        let playerItem = AVPlayerItem(url: url)
        player = AVPlayer(playerItem: playerItem)  

    }
 

该类的一些其他方法将是

func togglePlayer() {
    if player?.rate != 0 {
        player?.pause()
        self.playButton.setBackgroundImage(UIImage(systemName: "play.circle"),for: .normal)
    } else {
        player?.play()
        self.playButton.setBackgroundImage(UIImage(systemName: "stop"),for: .normal)
    }
}

//Method 1{...}
//Method 2 {...}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)