tap on sound row to play it

release
Laurent 3 years ago
parent f6777f4cb4
commit a3b72fb95f
  1. 22
      LeCountdown/Conductor.swift
  2. 6
      LeCountdown/Views/Components/SoundSelectionView.swift

@ -192,20 +192,24 @@ class Conductor: ObservableObject {
}
if let coolSound {
do {
let soundFile = try coolSound.soundFile()
let soundPlayer = SoundPlayer()
self.soundPlayer = soundPlayer
try soundPlayer.playSound(soundFile: soundFile, repeats: false)
} catch {
print("error = \(error)")
// TODO: manage error
}
self.playSound(coolSound)
} else {
print("No sound to play!")
}
}
func playSound(_ sound: Sound) {
do {
let soundFile = try sound.soundFile()
let soundPlayer = SoundPlayer()
self.soundPlayer = soundPlayer
try soundPlayer.playSound(soundFile: soundFile, repeats: false)
} catch {
print("error = \(error)")
// TODO: manage error
}
}
func stopSoundIfPossible() {
self.soundPlayer?.stop()
self.soundPlayer = nil

@ -95,6 +95,8 @@ struct PlaylistSectionView: View {
ForEach(sounds) { sound in
ToggleRow(item: sound, selected: self.model.binding(sound: sound)) { selected in
self.model.selectSound(sound, selected: selected)
}.onTapGesture {
self._playSound(sound)
}
}
} header: {
@ -105,6 +107,10 @@ struct PlaylistSectionView: View {
}
fileprivate func _playSound(_ sound: Sound) {
Conductor.maestro.playSound(sound)
}
}
struct ToggleRow<T : Localized>: View {

Loading…
Cancel
Save