【发布时间】:2019-10-27 18:44:57
【问题描述】:
遇到audioPlayerDidFinishPlaying 未被调用的问题...
我查看了其他一些 SO 线程:
Swift: AudioPlayerDidFinished will not be called
AVAudioPlayerDelegate doesn't call the method
...但仍然有同样的问题。
我已将ViewController 设置为符合AVAudioPlayerDelegate:
class ViewController: UIViewController, AVAudioPlayerDelegate {
var audioEngine = AVAudioEngine()
...
}
并在这里创建播放器;在创建播放器后立即设置委托:
func startAudioEngine(audioFileURL: URL) {
var player: AVAudioPlayer?
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
try AVAudioSession.sharedInstance().setActive(true)
player = try AVAudioPlayer(contentsOf: audioFileURL, fileTypeHint: AVFileType.mp3.rawValue)
guard let player = player else { return }
player.delegate = self
player.prepareToPlay()
player.play()
} catch let error {
print(error.localizedDescription)
}
}
【问题讨论】:
标签: ios swift avaudioplayer avaudiosession avaudioengine