У меня этот файл и вы хотите использовать этот файл в другом классе, но это не сработает. Я предполагаю, что это связано с тем, что я не инициализировал AVAudioPlayer
в этом файле, поэтому я решил с этим, но появилось сообщение, в котором говорилось: "Call can throw, but it is not marked with 'try' and the error is not handled"
Моя реализация не увенчалась успехом. Я понятия не имею, как с этим бороться. Не могли бы вы указать, что не так с инициализацией, и предоставить мне код, который работает. Заранее спасибо.Как инициализировать AVAudioPlayer в Swift
class SoundManager: AVAudioPlayer {
var _Sound: AVAudioPlayer!
override init() {
let url = NSBundle.mainBundle().URLForResource("rain", withExtension: "wav")
super.init(contentsOfURL: url!)
}
func playSound() {
if (url == nil) {
print("Could not find the file \(_Sound)")
}
do {
_Sound = try AVAudioPlayer(contentsOfURL: url!, fileTypeHint: nil)
}
catch let error as NSError { print(error.debugDescription)
}
if _Sound == nil {
print("Could not create audio player")
}
_Sound.prepareToPlay()
_Sound.numberOfLoops = -1
_Sound.play()
}
}
Работали !! Я думал, что необходимо реализовать AVAuiodPlayer в качестве подкласса. Мне любопытно, в какой ситуации я должен использовать его тогда? – bagels
@ryohei Если вы хотите использовать этот менеджер 'as' AVAudioPlayer, используйте подкласс. Он уничтожит свойство и функции суперкласса. Когда дело доходит до класса менеджера, я предпочитаю создавать класс без подкласса и давать ему экземпляр AVAudioPlayer, как в строке 'var _Sound: AVAudioPlayer!'. Не забудьте отметить мой ответ как полезный ~~ – BrikerMan
О, я вижу. Я рад решить эту проблему! Спасибо за Ваш ответ :) – bagels