真的没有办法在没有UI的情况下在Apple手表上播放短音吗?

时间:2016-05-26 14:04:33

标签: audio watchkit watch-os-2

作为一项学习练习,我决定为Apple Watch(iOS 9.3,WatchKit 2.0)编写一款Simon游戏。

我在GarageBand中创建了4个短钢琴音符。我将它们转换为Audacity的MP3文件,却发现Apple Watch不支持MP3。太好了。我需要将它们转换为WAV或CAF文件。叹息...

无论如何,看一下,看起来播放任何声音的唯一方法就是在手表上显示媒体控制器。 (使用presentMediaPlayerControllerWithURL:options:completion:WKInterfaceMovie

我只想在用户按下按钮时播放不同的1/4秒钢琴音色。

目前的WatchKit有没有其他办法,不需要显示媒体控制器?

1 个答案:

答案 0 :(得分:0)

使用watchOS4我使用WKInterfaceMovie工作。它不是那么繁重,而且比presentMediaPlayerControllerWithURL好得多。使用IB,你需要将一个WKInterfaceInlineMovie对象拖到表盘上(调整它非常小 - 你不会看到它)将对象连接到你的WKInterfaceController:

 @IBOutlet weak var myMovie: WKInterfaceInlineMovie!

我将几个按钮拖到接口控制器上,并使用与按钮关联的IBAction调用以下正确声音文件的标识符:

   func playSound(numberOfNote: Int) {
        let soundURL = Bundle.main.url(forResource: "note\(numberOfNote)", withExtension: "wav")!
        myMovie.setMovieURL(soundURL)
        myMovie.playFromBeginning()
    }

我点击一个按钮,声音立即大声播放(没有耳机)(与其他有长时间暂停的方法不同,所需的控制器需要被解除)。这应该是您所述需求的完美选择。