作为一项学习练习,我决定为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有没有其他办法,不需要显示媒体控制器?
答案 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()
}
我点击一个按钮,声音立即大声播放(没有耳机)(与其他有长时间暂停的方法不同,所需的控制器需要被解除)。这应该是您所述需求的完美选择。