annotate GeoQuiz/Logic/PlaySound.swift @ 7:d945e52b0704

implement dynamic map
author Dennis C. M. <dennis@denniscm.com>
date Tue, 04 Oct 2022 18:54:24 +0200
parents f31a61462e7a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // PlaySound.swift
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 22/9/22.
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import Foundation
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9 import AVFAudio
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 import UIKit
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 class Sound {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 private var player: AVAudioPlayer?
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 func play(_ filename: String) {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 guard let soundFileURL = Bundle.main.url(forResource: filename, withExtension: "wav") else {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 fatalError("Sound file \(filename) couldn't be found")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 do {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.ambient)
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 try AVAudioSession.sharedInstance().setActive(true)
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 } catch {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 fatalError("Couldn't activate session")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 do {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 player = try AVAudioPlayer(contentsOf: soundFileURL)
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 player?.play()
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 } catch {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 fatalError("Couldn't play sound effect")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35