#swiftui
#swiftui
Вопрос:
Я пытаюсь воспроизвести фоновый звук в SwiftUI.
Я могу воспроизводить звук следующим образом:
var aplayer = AVPlayer()
И
onAppear {
let aplayerItem = AVPlayerItem(url: URL(string: "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3")!)
aplayer = AVPlayer(playerItem: aplayerItem)
aplayer.play()
}
Но в приведенном выше коде есть проблемы.
1 — цикл выполняется только в течение короткого периода времени.
2- Если я переключаюсь между своими представлениями, звук прекратится. Я знаю, что это происходит, потому что мой код находится внутри .onAppear {...}
. Но как мне сделать его доступным и продолжать воспроизведение, даже если представления меняются?
Комментарии:
1. Не вводите
AVPlayer
свойство view — его можно воссоздать, сделайте это вместо этого в view model (или helper), т.Е. вне поля зрения. В представлении это активируется только с помощью некоторого вызова функции.