Я новичок в быстрой разработке и создании простого приложения для яблочных часов. Я бы хотел, чтобы при нажатии кнопки прозвучал короткий звук. Это возможно?
Из того, что я понимаю, лучший способ сделать это с AVFoundation и AVAudioPlayer. Похоже, в последние несколько выпусков было много обновлений, и я нахожу противоречивые советы. Основываясь на нескольких уроках, я собрал этот простой тест, но я получаю "Поток 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения" Вот мой код:
import WatchKit
import Foundation
import AVFoundation
var dogSound = AVAudioPlayer()
class InterfaceController: WKInterfaceController {
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Configure interface objects here.
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
@IBAction func playTapped() {
let path = Bundle.main.path(forResource: "Dog", ofType: ".mp3")!
let url = URL(fileURLWithPath: path)
do {
dogSound = try AVAudioPlayer(contentsOf: url)
dogSound.play()
} catch {
//couldn't load file :(
}
}
}
Мой аудиофайл - mp3 с именем Dog в папке Assets.xcassets в Расширение WatchKit , и у меня есть добавлено AVFoundation.framework к Link Binary with Libraries
Что я делаю не так, и есть ли руководство для правильного способа реализации этого? Большое спасибо!