现在可以在苹果手表模拟器上播放音效吗?

时间:2015-02-06 06:48:32

标签: swift xcode6 watchkit

当用户按下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上发挥音效?如果可以,请帮助我做到这一点。

2 个答案:

答案 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()