Search code examples
agora.io

Agora Composite Recording start returns empty sid


When I try to start composite recording, it returns empty sid resulting in not be able to start the recording. When I try individual recording, it works fine.

Am I missing something?

This is my code:

func startRecording() {
        
        let body : [String : Any] = [
            "uid": uid,
            "cname": channelName,
            "clientRequest": [
                "token": token(),
                "recordingConfig": [
                    "maxIdleTime": 30,
                    "streamMode": "standard",
                    "streamTypes": 2,
                    "channelType": 0,
                    "subscribeUidGroup": 1
                ],
                "storageConfig": [
                    "secretKey": MyAWS.secretKey,
                    "vendor": 1,
                    "bucket": MyAWS.buketName,
                    "accessKey": MyAWS.accessKey,
                    "region": 10,
                    "fileNamePrefix": [
                        channelName
                    ],
                    "extensionParams": [
                        "sse":"kms"
                   ]
                ]
            ]
        ]
        AF.request("https://api.agora.io/v1/apps/\(KeyCenter.AppId)/cloud_recording/resourceid/\(resourceId)/mode/mix/start",
                      method: .post,
                      parameters: body,
                      encoding: JSONEncoding.default,
                        headers: headers)
            .authenticate(username: username, password: password)
            .responseDecodable(of: CloudRecordingStartedResp.self, completionHandler: { response in
                print("cloud_recording.start")
                switch response.result {
                case .success(let data):
                    print("resourceId:\(data.resourceId)\nsid:\(data.sid)")
                    self.sid = data.sid
                case .failure(let error):
                    let str: String? = String(data: response.data!, encoding: .utf8)
                    print("error:\(error)\ndata:\(str)")
                }
        })
    }

Thank in advance.


Solution

  • streamMode was unnecessary. Deleted, then it worked!