| | |
| | | |
| | | class AudioPlayer { |
| | | private var player:AVPlayer? |
| | | private var BGMplayer:AVPlayer? |
| | | private var playIndex:Int = 0 //播放的角标 |
| | | private var cacheDirectory:URL! |
| | | private let session = URLSession.shared |
| | |
| | | } |
| | | } |
| | | |
| | | func playBGMAt(_ url:String){ |
| | | guard let URL = URL(string: url) else { return } |
| | | BGMplayer?.pause() |
| | | |
| | | if BGMplayer == nil{ |
| | | BGMplayer = AVPlayer(url: URL) |
| | | }else{ |
| | | BGMplayer?.replaceCurrentItem(with: AVPlayerItem(url: URL)) |
| | | } |
| | | DispatchQueue.main.asyncAfter(delay: 3.0) { |
| | | self.BGMplayer?.play() |
| | | self.BGMplayer?.volume = Float(UserDefaultSettingViewModel.getSetting()?.volume ?? 0.5) |
| | | } |
| | | |
| | | |
| | | //播放完成 |
| | | NotificationCenter.default.addObserver(self, selector: #selector(playBGMbackEnd), name:NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil) |
| | | } |
| | | |
| | | func dellocBGM(){ |
| | | BGMplayer?.pause() |
| | | BGMplayer = nil |
| | | } |
| | | |
| | | func pauseBGM(){ |
| | | BGMplayer?.pause() |
| | | } |
| | | |
| | | func playBGM(){ |
| | | BGMplayer?.play() |
| | | } |
| | | |
| | | func next(){ |
| | | playIndex += 1 |
| | | let index = min((urls.count - 1), playIndex) |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | @objc private func playBGMbackEnd(){ |
| | | self.BGMplayer?.seek(to: CMTimeMake(value: 0, timescale: 1)) |
| | | self.BGMplayer?.play() |
| | | } |
| | | |
| | | func previous(){ |
| | | playIndex -= 1 |
| | | let index = max(0, playIndex) |