Фоновый звук прекращается при переходе к другим представлениям в приложении SwiftUI?

#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), т.Е. вне поля зрения. В представлении это активируется только с помощью некоторого вызова функции.