// // LNIMAudioCallBellPlayer.swift // Gami // // Created by OneeChan on 2026/2/9. // import Foundation import AVFAudio class LNIMAudioCallBellPlayer: NSObject { private var player: AVAudioPlayer? private var playing = false func startPlay(isInCome: Bool) { if player != nil { stop() } let path = if isInCome { Bundle.main.path(forResource: "phone_bell", ofType: "mp3") } else { Bundle.main.path(forResource: "phone_bell", ofType: "mp3") } guard let path else { return } do { let session = AVAudioSession.sharedInstance() try session.setCategory(.playback, mode: .default) try session.setActive(true) player = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path)) } catch let error as NSError { print("Error: \(error.localizedDescription)") return } guard let prepare = player?.prepareToPlay(), prepare else { return } playing = true player?.delegate = self player?.play() } func stop() { playing = false player?.stop() player = nil } } extension LNIMAudioCallBellPlayer: AVAudioPlayerDelegate { func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { if playing { player.play() } } }