@@ -152,6 +152,20 @@ public class AudioVisualizationView: BaseNibView {
152
152
153
153
// PRAGMA: - Play Mode Handling
154
154
155
+ public func play( from url: URL ) {
156
+ guard self . audioVisualizationMode == . read else {
157
+ fatalError ( " trying to read audio visualization in write mode " )
158
+ }
159
+
160
+ AudioContext . load ( fromAudioURL: url) { audioContext in
161
+ guard let audioContext = audioContext else {
162
+ fatalError ( " Couldn't create the audioContext " )
163
+ }
164
+ self . meteringLevels = audioContext. render ( targetSamples: 100 )
165
+ self . play ( for: 2 )
166
+ }
167
+ }
168
+
155
169
public func play( for duration: TimeInterval ) {
156
170
guard self . audioVisualizationMode == . read else {
157
171
fatalError ( " trying to read audio visualization in write mode " )
@@ -200,22 +214,6 @@ public class AudioVisualizationView: BaseNibView {
200
214
self . currentGradientPercentage = nil
201
215
}
202
216
203
- // PRAGMA: - Play From File
204
-
205
- public func play( from url: URL ) {
206
- guard self . audioVisualizationMode == . read else {
207
- fatalError ( " trying to read audio visualization in write mode " )
208
- }
209
-
210
- AudioContext . load ( fromAudioURL: url, completionHandler: { audioContext in
211
- guard let audioContext = audioContext else {
212
- fatalError ( " Couldn't create the audioContext " )
213
- }
214
- self . meteringLevels = audioContext. render ( targetSamples: 100 )
215
- self . play ( for: 2 )
216
- } )
217
- }
218
-
219
217
// MARK: - Mask + Gradient
220
218
221
219
private func drawLevelBarsMaskAndGradient( inContext context: CGContext ) {
0 commit comments