ios - 使用 Linphone iOS SDK 启用视频通话

标签 ios swift video video-streaming linphone

我正在尝试使用 Linphone 在我的 swift 应用程序上启用视频通话。 我能够启用音频通话,但无法使用视频通话。如果我启用此行,应用程序总是崩溃:

linphone_call_params_enable_video(linCallParams, 1)

我只想在这里接收视频和音频。

@objc func startVideoCall() {

    linphone_core_enable_video_display(theLinphone.lc, 1)
    linphone_core_enable_video_capture(theLinphone.lc, 1)

    let linCallParams = linphone_core_create_call_params(theLinphone.lc, nil)
    linphone_call_params_enable_video(linCallParams, 1)

    linphone_call_params_set_video_direction(linCallParams, LinphoneMediaDirectionSendRecv)
    linphone_call_params_set_audio_direction(linCallParams, LinphoneMediaDirectionSendRecv)

    let call = linphone_core_invite_with_params(theLinphone.lc, calleeAccount, linCallParams)

    linphone_core_set_native_video_window_id(theLinphone.lc, &videoStreamView)
    linphone_core_set_native_preview_window_id(theLinphone.lc, &videoStreamPreview)

    do {
        try audioSession.setActive(true)
    } catch {
        print("Audio error: \(error.localizedDescription)")
    }
    linphone_call_params_unref(linCallParams)     
}

最佳答案

这个代码组合解决了我的问题

private func bridge<T: AnyObject>(obj : T) -> UnsafeRawPointer {
    let pointer = Unmanaged.passUnretained(obj).toOpaque()
    return UnsafeRawPointer(pointer)
}

let viewPointer = UnsafeMutableRawPointer(mutating: bridge(obj: view))
linphone_core_set_native_video_window_id(theLinphone.lc, viewPointer)
let previewPointer = UnsafeMutableRawPointer(mutating: bridge(obj: previewStream))
linphone_core_set_native_preview_window_id(theLinphone.lc, previewPointer)

关于ios - 使用 Linphone iOS SDK 启用视频通话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48680606/

相关文章:

java - 音频漂移问题。以编程方式创建视频帧并与 java 中的 midi/音频同步

html - Android webview 视频自动播放成功,但同样的 apk 在 android Tv mini pc 上失败?

javascript - 在事件中播放嵌入式 API Youtube 视频

ios - 等待直到收到 NSNotification

ios - 在 tableView 中处理异步 Firestore 数据读取 - iOS

ios - MLKit文本检测异常-[Not A Type _cfTypeID] : message sent to deallocated instance 0x106623e20

ios - 删除字符串开头的非字母字符

swift - 满足 if let 构造中的多个约束之一

ios - iPhone-沿贝塞尔曲线路径移动 UI ImageView

iphone - 判断MySpace是否登录成功