我正在使用以下功能在我的应用中播放声音fx。我想这样做,以便用户可以同时收听他们的iphone音乐。
我在多个视图控制器上也使用它..不确定是否会改变任何东西。实现这一目标的最简单方法是什么?
var audioPlayer = AVAudioPlayer()
func playSound (Sound: String, Type: String) {
let path = NSBundle.mainBundle().pathForResource(Sound, ofType: Type)!
let url = NSURL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOfURL: url)
audioPlayer = sound
sound.play()
} catch {
// couldn't load file :(
}
}
答案 0 :(得分:1)
你可以做到
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
<强>更新强>
请记住您正在执行此操作的文件中的import AVFoundation
,并且还要使用错误处理,因为此方法会抛出。
例如,可以在这样的事情中使用它,将错误处理的责任向上传递。
import AVFoundation
func configureAudioSession() throws {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
}
或者如果不想处理错误(不推荐),例如:
_ = try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
你只需要这样做一次(因为我们正在访问sharedInstance()),所以每当你配置你的音频会话时,这将是一个很好的地方。
如果您要创建更多AVAudioSessions,则需要为每个音频会话执行此操作。