第一次按下按钮时,我遇到通过AVAudioPlayer播放声音的问题。当我再次点击它时它工作正常。
以下是我正在使用的代码,这是在我的viewDidLoad()中调用的
func loadSounds(){
do{
try audioPlayerL = AVAudioPlayer(contentsOfURL: startListening!)
try audioPlayerE = AVAudioPlayer(contentsOfURL: doneListening!)
}
catch{
}
audioPlayerL.delegate = self
audioPlayerL.prepareToPlay()
audioPlayerE.delegate = self
audioPlayerE.prepareToPlay()
}
以下是播放文件的方法
func playSound(){
if(startedListening == true){
audioPlayerL.play()
}
else{
audioPlayerE.play()
}
}
我完全不知道为什么它不是第一次玩。在模拟器上它没有任何问题。在我的iPhone 6上运行它第一次失败。
我检查了它并没有在任何地方抛出错误。
答案 0 :(得分:1)
就这样关闭了,任何有同样问题的人都知道这个问题已经解决了。就像马尔科夫所说,通过添加这行代码来解决这个问题
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.MixWithOthers)
总计看起来像这样
加载声音的代码
func loadSounds(){
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.MixWithOthers)
try audioPlayerL = AVAudioPlayer(contentsOfURL: startListening!)
try audioPlayerE = AVAudioPlayer(contentsOfURL: doneListening!)
}
catch{
print("error")
}
audioPlayerL.delegate = self
audioPlayerL.prepareToPlay()
audioPlayerE.delegate = self
audioPlayerE.prepareToPlay()
}
正在调用播放声音的方法
func playSound(){
if(startedListening == true){
audioPlayerL.play()
}
else{
audioPlayerE.play()
}
}