Ver Fonte

fix Audio

marinofaggiana há 3 anos atrás
pai
commit
c4a7a01899

+ 13 - 6
iOSClient/AppDelegate.swift

@@ -140,12 +140,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
         UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (_, _) in }
 
         // Audio Session
-        do {
-            try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default, options: [.mixWithOthers, .allowAirPlay])
-            try AVAudioSession.sharedInstance().setActive(true)
-        } catch {
-            print(error)
-        }
+        setAVAudioSession()
         
         // Store review
         if !NCUtility.shared.isSimulatorOrTestFlight() {
@@ -320,6 +315,18 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
         //[fileProviderDomain registerDomains];
     }
   
+    // MARK: - AVAudioSession
+    
+    func setAVAudioSession() {
+        do {
+            try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSession.PortOverride.none)
+            try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.mixWithOthers, .allowAirPlay])
+            try AVAudioSession.sharedInstance().setActive(true)
+        } catch {
+            print(error)
+        }
+    }
+    
     // MARK: - Background Task
     
     @available(iOS 13.0, *)

+ 5 - 1
iOSClient/Main/AudioRecorder/NCAudioRecorderViewController.swift

@@ -179,7 +179,8 @@ open class NCAudioRecorder : NSObject {
     var recorder: AVAudioRecorder?
     fileprivate var player: AVAudioPlayer?
     fileprivate var link: CADisplayLink?
-    
+    let appDelegate = UIApplication.shared.delegate as! AppDelegate
+
     var metering: Bool {
         return delegate?.responds(to: #selector(NCAudioRecorderDelegate.audioMeterDidUpdate(_:))) == true
     }
@@ -213,7 +214,9 @@ open class NCAudioRecorder : NSObject {
             try prepare()
         }
         
+        try session.setCategory(.playback, mode: .default)
         try session.overrideOutputAudioPort(AVAudioSession.PortOverride.speaker)
+        try session.setActive(true)
 
         recorder?.record()
         state = .record
@@ -236,6 +239,7 @@ open class NCAudioRecorder : NSObject {
             break
         }
         
+        appDelegate.setAVAudioSession()
         state = .none
     }