fix
无故事王国
2024-06-11 d6157c137a888d4f6931255735c3ed39575c579d
DolphinEnglishLearnStudent/Config/VoicePlayer.swift
@@ -9,12 +9,18 @@
import AVFAudio
protocol VoicePlayerDelegate{
            func playComplete()
}
/// 音频播放器
class VoicePlayer:NSObject{
            /// 缓存地址
            private let voiceCacheDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!.appendingPathComponent("voices")
            private static var _sharedInstance: VoicePlayer?
            private var player:AVAudioPlayer?
            var delegate:VoicePlayerDelegate?
            //是否正在播放
            var isPlaying:Bool{return player?.isPlaying ?? false}
@@ -23,7 +29,6 @@
            /// 单例
            /// - Returns: <#description#>
            class func share() -> VoicePlayer {
                        guard let instance = _sharedInstance else {
                                    _sharedInstance = VoicePlayer()
@@ -45,8 +50,8 @@
            func playerAt(url:String?){
                        guard let u = url else {return}
                        if player?.isPlaying ?? false{
                                    VoicePlayer.share().playComplete?() //先通知完成播放
                                    player?.stop()
                                    self.playComplete?() //先通知完成播放
                        }
                        //文件存在:直接播放缓存路径的语音
@@ -90,6 +95,7 @@
extension VoicePlayer:AVAudioPlayerDelegate{
            func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
                        VoicePlayer.share().playComplete?()
                        delegate?.playComplete()
            }
            func audioPlayerDecodeErrorDidOccur(_ player: AVAudioPlayer, error: (any Error)?) {