Audio System Swift UI

import Foundation
import SwiftUI
import AVKit

class SoundManager : ObservableObject {
    var audioPlayer: AVPlayer?

    init() {
        NotificationCenter.default.addObserver(self, selector:#selector(self.playerDidFinishPlaying(note:)),name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.audioPlayer?.currentItem)
    }
    
    func playSound(sound: String){
        if let url = URL(string: sound) {
            self.audioPlayer = AVPlayer(url: url)
        }
    }
    
    @objc func playerDidFinishPlaying(note: NSNotification){
            print("Video Finished")
        // currentMassiv.removeFirst()
        // currentElement = currentMassiv[0]
        }
}

struct ContentView: View {
    @State var song1 = false
    @StateObject private var soundManager = SoundManager()
    
    var body: some View {
        Button {
            soundManager.playSound(sound: "https://file-examples.com/storage/fe07f859fd624073f9dbdc6/2017/11/file_example_MP3_700KB.mp3")
            song1.toggle()
            
            if song1{
                soundManager.audioPlayer?.play()
            } else {
                soundManager.audioPlayer?.pause()
            }
        } label: {
            Image(systemName: song1 ? "pause.circle.fill": "play.circle.fill")
                .font(.system(size: 25))
                .padding(.trailing)
             
        }
    
    }
}

Ответы (0 шт):