Я развиваю аудиоплеер в режиме быстрого и мне нужно 2 кнопки (Play and Stop), чтобы управлять им. Я использовал следующий код:Как играть и останавливать AVAudioPlayer в swift3?
override func viewDidLoad() {
super.viewDidLoad()
let urlstring = "http://radio.spainmedia.es/wp-content/uploads/2015/12/tailtoddle_lo4.mp3"
let url = NSURL(string: urlstring)
print("the url = \(url!)")
downloadFileFromURL(url: url!)
}
func downloadFileFromURL(url:NSURL) {
var downloadTask:URLSessionDownloadTask
downloadTask = URLSession.shared.downloadTask(with: url as URL, completionHandler: { (URL, response, error) -> Void in
self.play(url: URL! as NSURL)
})
downloadTask.resume()
}
func play(url:NSURL) {
print("playing \(url)")
do {
self.SoundPlayer = try AVAudioPlayer(contentsOf: url as URL)
SoundPlayer.prepareToPlay()
SoundPlayer.volume = 1.0
SoundPlayer.play()
} catch let error as NSError {
//self.player = nil
print(error.localizedDescription)
} catch {
print("AVAudioPlayer init failed")
}
}
@IBAction func Play(_ sender: Any) {
SoundPlayer.play()
}
@IBAction func Stop(_ sender: Any) {
SoundPlayer.stop()
}
В принципе, когда пользователь открывает приложение, музыкальный файл автоматически запускается. Поэтому я создал две дополнительные кнопки: «Пуск» и «Стоп», и я хочу управлять этим проигрывателем аудио с ними. Не могли бы вы посоветовать мне, как это сделать, потому что теперь они не связаны с Audio Player и никаких действий не происходит, когда я нажимаю на них.
Вы проверили, что SoundPlayer не ноль в Play/Stop funcs? –
Они ноль, я думаю, но я не знаю, как их исправить – Dakata
Если они ноль, то я бы предположил, что вы теряете ссылку на них где-то. Как вы определяете var SoundPlayer? –