You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Linphone IOS SDK 5开发SIP通话录音功能遇文件为空问题求助

Linphone iOS SDK 5通话录音异常解决思路
  • 修正存储路径格式
    Linphone SDK的recordFile参数仅支持不带协议前缀的本地绝对路径,你当前使用的getWhistleURL().absoluteString会返回带file://前缀的字符串,SDK无法识别写入,需要改为调用getWhistleURL().path获取纯路径字符串。
  • 开启音频流混合配置
    只能录制本地声音、无法录制远端音频的核心原因是默认仅录制本地麦克风输入,需要在Core初始化时开启混合流开关:
    // 混合本地麦克风输入+远端音频流后再录制
    mCore.audioRecordingMixStreams = true
    // 匹配通话音频采样率,避免编码异常
    mCore.recordSampleRate = 16000
    
  • 调整录音触发时机
    不建议在创建呼出参数时直接设置recordFile,更稳定的方式是在通话状态回调监听到连接成功后再主动开启录音:
    func onCallStateChanged(call: Call, state: CallState, message: String) {
        switch state {
        case .Connected:
            // 通话接通后再启动录音
            call.startRecording(filePath: getWhistleURL().path)
        case .End, .Error:
            // 通话结束主动停止录音,确保文件缓冲区写入磁盘
            call.stopRecording()
        default:
            break
        }
    }
    
  • 验证存储目录权限
    确认你创建的录音文件存储路径位于App沙盒允许读写的目录下,例如NSDocumentDirectory或NSCachesDirectory,不要尝试写入系统级目录。

内容的提问来源于stack exchange,提问作者Moskwinow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:15:07