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)
}
}
}