@@ -65,21 +65,24 @@ public class SwiftAudioStreamerPlugin: NSObject, FlutterPlugin, FlutterStreamHan
6565
6666 func startRecording( ) {
6767 engine = AVAudioEngine ( )
68-
69- try ! AVAudioSession . sharedInstance ( ) . setCategory ( AVAudioSession . Category. playAndRecord, options: . mixWithOthers)
70- try ! AVAudioSession . sharedInstance ( ) . setActive ( true )
71-
72- let input = engine. inputNode
73- let bus = 0
7468
75- input. installTap ( onBus: bus, bufferSize: 22050 , format: input. inputFormat ( forBus: bus) ) { ( buffer, time) -> Void in
76- let samples = buffer. floatChannelData ? [ 0 ]
77- // audio callback, samples in samples[0]...samples[buffer.frameLength-1]
78- let arr = Array ( UnsafeBufferPointer ( start: samples, count: Int ( buffer. frameLength) ) )
79- self . emitValues ( values: arr)
80- }
69+ do {
70+ try AVAudioSession . sharedInstance ( ) . setCategory ( AVAudioSession . Category. playAndRecord, options: . mixWithOthers)
71+ try AVAudioSession . sharedInstance ( ) . setActive ( true )
8172
82- try ! engine. start ( )
83- }
73+ let input = engine. inputNode
74+ let bus = 0
75+
76+ input. installTap ( onBus: bus, bufferSize: 22050 , format: input. inputFormat ( forBus: bus) ) { buffer, _ -> Void in
77+ let samples = buffer. floatChannelData ? [ 0 ]
78+ // audio callback, samples in samples[0]...samples[buffer.frameLength-1]
79+ let arr = Array ( UnsafeBufferPointer ( start: samples, count: Int ( buffer. frameLength) ) )
80+ self . emitValues ( values: arr)
81+ }
8482
83+ try engine. start ( )
84+ } catch {
85+ eventSink!( FlutterError ( code: " 100 " , message: " Unable to start audio session " , details: error. localizedDescription) )
86+ }
87+ }
8588}
0 commit comments