当用户按下WKInterfaceController上的按钮时,我想播放声音。以下是我在项目中的表现: - 将AVFoundation框架工作添加到我的watchkit应用程序。 - 在我的WKInterfaceController上导入AVFoundation - 为音频会话和播放器创建2个变量:
var audioSession:AVAudioSession!
var player:AVAudioPlayer!
- make 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上发挥音效?如果可以,请帮助我做到这一点。
答案 0 :(得分:2)
没有。在Apple Watch上无法使用WatchKit播放声音。
- Apple的WatchKit Evangelist
目前无法使用最新版本的WatchKit播放声音。
我建议提交功能请求。
答案 1 :(得分:0)
可以在Apple Watch应用程序中播放声音文件。您需要在Apple Watch应用程序扩展中单独添加声音文件,并调用AVAudioPlayer播放声音文件。
e.g:
let path = NSBundle.mainBundle().pathForResource("coinFlip", ofType:"caf")
let fileURL = NSURL(fileURLWithPath: path!)
player = AVAudioPlayer(contentsOfURL: fileURL, error: nil)
player.prepareToPlay()
player.delegate = self
player.play()