如何解决Agora Cloud Recording 不录制混入音频文件
您好,我已经成功录制了一个 Agora 音频通话,其中一个人以广播角色发言,并且在通话过程中混入了多个音频文件。
在我们升级到 flutter 2 和相关的升级包之前,所有音频都被记录下来。
现在只录制广播员的声音,没有混入音频。
广播公司和观众都可以毫无问题地听到通话中的混合音频。
代码(Flutter)类似于:
使用默认设置将音频混入有效的 RTC 会话中
final playing = await session.playAudioFile(path,(){
state = MessagePlayerState.STOPPED;
if (!disposing) {
whenFinished();
}
});
录音选项如下(我的UID是硬编码的字符串,与任何参与者的UID都不一样)
http.Response response = await http.post(
Uri.https(AGORA_REST_URL,'$AGORA_REST_API_VERSION/$appId/cloud_recording/resourceid/$resourceId/mode/mix/start'),headers: <String,String>{
HttpHeaders.authorizationHeader: 'Basic $basicAuth',HttpHeaders.contentTypeHeader: 'application/json; charset=UTF-8',},body: jsonEncode(<String,dynamic>{
'cname': channelName,'uid': uid,'clientRequest': {
'recordingConfig':{
'channelType':0,'streamTypes':2,// TODO: Should be a streamTypes of 0 (audio only),but get failures.
'audioProfile':1,'videoStreamType':0,'maxIdleTime':120,'transcodingConfig':{
'width':360,'height':640,'fps':30,'bitrate':600,'maxResolutionUid':'1','mixedVideoLayout':1
},'recordingFileConfig':{
'avFileType': ['hls','mp4']
}
},'storageConfig':{
'vendor':1,'region':3,'bucket':AWS_RECORDING_BUCKET,// TODO: Env Var
'accessKey':AWS_BUCKET_ACCESS_KEY,'secretKey':AWS_BUCKET_SECRET_KEY,}
},}),);
m3u8 和 ts 文件存在于 S3 存储桶中。
在 S3 中调整元数据标签会导致文件在 Safari 中正常播放,但听不到混合音频。
使用 ffmpeg 将文件转换为 aac 显示此错误
[hls @ 0x7fd6cc808200] Opening '2838cfc6254e9fec2e3088976f39d7ce_bip_20210618014151427.ts' for reading
[mpegts @ 0x7fd6cc00a600] Packet corrupt (stream = 0,dts = 1437390).
size= 480kB time=00:00:30.69 bitrate= 128.1kbits/s speed=1.49e+03x
video:0kB audio:470kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.093976%
结果与来自 S3 存储桶的结果相同。
感谢任何帮助或提示。
解决方法
这可以关闭/忽略。事实证明,当应用正常使用时,我们有一个边缘条件没有显示,但例如,如果您想要一个非常舞台管理的录音向其他人炫耀它坏了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。