问题描述
在我的应用中,我播放来自 Firebase 的声音文件。对于这项任务,我最初使用的是 AVPlayer,但后来由于增强的功能而切换到 AVAudioPlayer。但是,我现在面临的问题是,当我从播放列表中的一个音频文件切换到另一个音频文件时,下一个文件会在播放整个文件之前连续重新启动(仅播放文件的 1 秒)4-5 次。播放音频文件位于可观察对象内。
class Fviewmodel: ObservableObject {
@Published var player = AVAudioPlayer()
func playAudio(url: String) {
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)
}
catch {
print(error)
}
guard let url = URL(string: url) else {
print("Invalid URL")
return
}
do {
let session = AVAudioSession.sharedInstance()
try session.setCategory(AVAudioSession.Category.playback)
let soundData = try Data(contentsOf: url)
player = try AVAudioPlayer(data: soundData)
player.preparetoPlay()
let minuteString = String(format: "%02d",(Int(player.duration) / 60))
let secondString = String(format: "%02d",(Int(player.duration) % 60))
print("TOTAL TIMER: \(minuteString):\(secondString)")
}
catch {
print(error)
}
if player.isPlaying {
player.pause()
}
else {
player.play()
}
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.success)
}}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)