【发布时间】:2015-02-06 06:48:31
【问题描述】:
我想在用户按下 WKInterfaceController 上的按钮时播放声音。这是我在项目中的做法: - 将 AVFoundation 框架添加到我的 watchkit 应用程序。 - 在我的 WKInterfaceController 上导入 AVFoundation - 为音频会话和播放器创建 2 个变量:
var audioSession:AVAudioSession!
var player:AVAudioPlayer!
- 为配置音频会话和配置音频播放器创建 2 个函数:
func configureAudioSession() {
self.audioSession = AVAudioSession.sharedInstance()
var categoryError:NSError?
var activeError:NSError?
// set category cho audio session
self.audioSession.setCategory(AVAudioSessionCategoryPlayback, error: &categoryError)
println("error: \(categoryError)")
// set active cho audio session
var success = self.audioSession.setActive(true, error: &activeError)
if !success {
println("error making audio session active :\(activeError)")
}
}
func configureAudioPlayer() {
// Lay song path
var songPath = NSBundle.mainBundle().pathForResource("Open Source - Sending My Signal", ofType: "mp3")
// Chuyen thanh URL
println("songpath: \(songPath)")
var songURL = NSURL(fileURLWithPath: songPath!)
println("songURL: \(songURL)")
//
var songError:NSError?
// Tao audioplayer
self.player = AVAudioPlayer(contentsOfURL: songURL!, error: &songError)
println("songerror:\(songError)")
self.player.numberOfLoops = 0
}
- 之后,我完成了我的按钮按下功能,如下所示:
@IBAction func startGameButtonPressed() {
self.configureAudioSession()
self.configureAudioPlayer()
self.player.play()
}
一切正常,虽然我的按钮可以工作,但我可以看到 southPath,但我听不到声音。我仍然在 IOS 应用程序上使用这些步骤,它工作正常。可能此时我们无法在 Watchkit 上播放音效?如果可以的话,请帮我做。
【问题讨论】: