Skip to content
Snippets Groups Projects
Commit 33b3a86f authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Handle AVAudioPlayer setup failure in Voxophone

parent 96acd34c
No related branches found
No related tags found
1 merge request!110Fix crash with dictation and audio recording
...@@ -41,8 +41,12 @@ public final class Voxophone: NSObject, AVAudioRecorderDelegate, AVAudioPlayerDe ...@@ -41,8 +41,12 @@ public final class Voxophone: NSObject, AVAudioRecorderDelegate, AVAudioPlayerDe
public func load(_ url: URL) { public func load(_ url: URL) {
destroyPlayer() destroyPlayer()
destroyRecorder() destroyRecorder()
let player = setupPlayer(url: url) do {
state = .idle(url, duration: player.duration, isLoudspeaker: state.isLoudspeaker) let player = try setupPlayer(url: url)
state = .idle(url, duration: player.duration, isLoudspeaker: state.isLoudspeaker)
} catch {
state = .empty(isLoudspeaker: state.isLoudspeaker)
}
} }
public func play() { public func play() {
...@@ -76,8 +80,8 @@ public final class Voxophone: NSObject, AVAudioRecorderDelegate, AVAudioPlayerDe ...@@ -76,8 +80,8 @@ public final class Voxophone: NSObject, AVAudioRecorderDelegate, AVAudioPlayerDe
} }
} }
private func setupPlayer(url: URL) -> AVAudioPlayer { private func setupPlayer(url: URL) throws -> AVAudioPlayer {
let player = try! AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.m4a.rawValue) let player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.m4a.rawValue)
self.player = player self.player = player
return player return player
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment