Recording audio PCM on WatchOS 4

At WWDC17, new recording features were announced for WatchOS 4. And I've been trying to get a PCM array, but I was not successful.

Currently I tried to use the following code.


Check AudioSession:


    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
       
        let recordingSession = AVAudioSession.sharedInstance()
       
        do {
            try recordingSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
            try recordingSession.setActive(true)
            recordingSession.requestRecordPermission() { [unowned self] allowed in
                DispatchQueue.main.async {
                    if allowed {
                        self.recordingSessionSuccessfulPermission()
                    } else {
                        self.recordingSessionFailPermission()
                    }
                }
            }
        } catch {
            self.recordingSessionFailPermission()
        }
    }


Start Record:

    @IBAction func startRecordButton() {
        label.setText("start record")
        let audioEngine = AVAudioEngine.init()
        let inputNode = audioEngine.inputNode
        let format = inputNode.inputFormat(forBus: 0)
        inputNode.installTap(onBus: 0, bufferSize: 8000, format: format) { (buf, wheb) in
            self.label.setText("It is working")
        }
       
        audioEngine.prepare()
        do {
            try audioEngine.start()
        } catch {
            // Handle error...
        }
    }


This code throws the error:


    [audiocomp] 178: registration server connection invalidated
    [audiocomp] 170: registration server proxy error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.audio.AudioComponentRegistrar was invalidated." UserInfo={NSDebugDescription=The connection to service named com.apple.audio.AudioComponentRegistrar was invalidated.}

The AudioEngine object must be created outside Action.


For example:

class MyClass: WKInterfaceController { 
  private var audioEngine = AVAudioEngine()
Recording audio PCM on WatchOS 4
 
 
Q