AudioKit / AudioKitUI

Controls and Visualization for AudioKit apps
MIT License
187 stars 52 forks source link

AudioFileWaveform using with changing URLs #89

Open mahal opened 3 weeks ago

mahal commented 3 weeks ago

Description

Consider following View (pseudo code):

var audioFiles: [AudioFile] // set somewhere on init

var body: some View {
     let audioFile = audioFiles[loadedFileIndex]
     Picker("Sound File", selection: $loadedFileIndex) {
          ForEach(audioFiles.indices, id: \.self) { index in
               Text("\(.audioFiles[index].name)")
          }
      }
     AudioFileWaveform(url: audioFile.url, color: .blue) 
}

This will not update AudioFileWaveform with the new file chosen.

Proposed Solution

See PR 90

Describe Alternatives You've Considered

.didSet on var url: URL of AudioFileWaveform, didn't work the deprecated onChange() didn't know how to test / implement

Additional Context

No response