无法使用 AVAudioPlayer 播放音频
Unable to Play Audio Using AVAudioPlayer
我正在尝试使用 AVAudioPlayer
播放音频文件。以前,我能够使用代码成功播放音频:
// Play the audio file
var soundID: SystemSoundID = 0
let mainBundle: CFBundleRef = CFBundleGetMainBundle()
// Get the audio reference
if let ref: CFURLRef = CFBundleCopyResourceURL(mainBundle, filename, Globals.SOUND_TYPE, nil) {
// Reference found, play audio
AudioServicesCreateSystemSoundID(ref, &soundID)
AudioServicesPlaySystemSound(soundID)
}
但是应用程序中的一个新要求是我需要能够以一定的音量播放音频。 AudioServicesPlaySystemSound
无法提供该功能。所以现在我有以下代码:
do {
let audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(filename, ofType: Globals.SOUND_TYPE)!))
audioPlayer.volume = volume
audioPlayer.play()
print("play audio")
} catch {
print("Error")
}
我正在播放音频 print
语句,但没有播放音频。我什至硬编码 audioPlayer.volume = 1.0
,但没有播放音频。为了播放音频,我可能缺少什么代码?
您的本地 audioPlayer
变量在播放声音之前被释放。
如果您为播放器添加 属性(实例变量)并使用它,播放器将有机会在被释放之前播放声音。
在你的 class 中,创建一个 属性 赞
var audioPlayer: AVAudioPlayer?
然后,而不是
let audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(filename, ofType: Globals.SOUND_TYPE)!))
使用对 属性
的引用
self.audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(filename, ofType: Globals.SOUND_TYPE)!))
其中 Swift 中不需要 self
。
我正在尝试使用 AVAudioPlayer
播放音频文件。以前,我能够使用代码成功播放音频:
// Play the audio file
var soundID: SystemSoundID = 0
let mainBundle: CFBundleRef = CFBundleGetMainBundle()
// Get the audio reference
if let ref: CFURLRef = CFBundleCopyResourceURL(mainBundle, filename, Globals.SOUND_TYPE, nil) {
// Reference found, play audio
AudioServicesCreateSystemSoundID(ref, &soundID)
AudioServicesPlaySystemSound(soundID)
}
但是应用程序中的一个新要求是我需要能够以一定的音量播放音频。 AudioServicesPlaySystemSound
无法提供该功能。所以现在我有以下代码:
do {
let audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(filename, ofType: Globals.SOUND_TYPE)!))
audioPlayer.volume = volume
audioPlayer.play()
print("play audio")
} catch {
print("Error")
}
我正在播放音频 print
语句,但没有播放音频。我什至硬编码 audioPlayer.volume = 1.0
,但没有播放音频。为了播放音频,我可能缺少什么代码?
您的本地 audioPlayer
变量在播放声音之前被释放。
如果您为播放器添加 属性(实例变量)并使用它,播放器将有机会在被释放之前播放声音。
在你的 class 中,创建一个 属性 赞
var audioPlayer: AVAudioPlayer?
然后,而不是
let audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(filename, ofType: Globals.SOUND_TYPE)!))
使用对 属性
的引用self.audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(filename, ofType: Globals.SOUND_TYPE)!))
其中 Swift 中不需要 self
。