我有一个应用程序,如果单击按钮,它会播放声音。但是,在实际设备上没有声音。我检查了stackoverflow中其他人已经提供的所有解决方案。似乎没有任何作用。该应用程序不会崩溃。它只是不播放声音。在模拟器中,它可以完美运行。区分大小写没有问题。另外,电话不会静音。
代码:
var audioPlayer : AVAudioPlayer!
按下按钮时:
let soundPath = Bundle.main.path(forResource: "bell-ringing-01", ofType: "mp3")
audioPlayer = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: soundPath!))
audioPlayer?.play()
在编译和运行时也没有错误。该应用程序加载良好。
答案 0 :(得分:0)
已解决!以下代码有效。按下 Play 按钮后,铃声会播放
func playSound(){
let soundURL = Bundle.main.url(for资源:“ bell-ringing-01”,扩展名:“ mp3”)
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
try audioPlayer = try AVAudioPlayer(contentsOf: soundURL!)
}
catch{
print(error)
}
audioPlayer.play()
}
仅在模拟器中有效的代码,但在iPhone 7中无效:
func playSound(){
// let soundURL = Bundle.main.url(forResource: selectedSoundFileName, withExtension: "wav")
let soundPath = Bundle.main.path(forResource: "bell-ringing-01", ofType: "mp3")
audioPlayer = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: soundPath!))
audioPlayer?.play()
}
在不添加 AVAudioSession 的情况下,该代码仅在模拟器中运行,而不在我的iPhone 7中运行。
答案 1 :(得分:0)
我想添加这两行可以解决现有代码中的问题:
尝试AVAudioSession.sharedInstance()。setCategory(AVAudioSessionCategoryPlayback)
尝试AVAudioSession.sharedInstance()。setActive(true)