macOS NIMAVChat 使用指南

SDK 概述

macOS NIMAVChat SDK 和 iOS NIMAVChat SDK 基于同一份代码开发,提供 iOS NIMAVChat SDK 的大部分功能,兼容 macOS 10.10,但仅支持 x86_64 架构,不支持 i386。

macOS NIMAVChat SDK 依赖 macOS NIM SDK,关于 NIM 的开发准备及使用方法,请参考 macOS NIM SDK 开发集成

开发准备

macOS NIM/NIMAVChat SDK 目前仅提供手动集成方式,并且两个 SDK 需要使用相同的发布版本,否则会初始化失败导致后续音视频相关功能不可用。

【注】NIMSDK 在 5.1.0 版本之后已改为动态库,集成方式有所改变,若需要集成高于此版本的 SDK,只需要做以下步骤:

SDK 使用

macOS NIMAVChat SDK 提供 iOS NIMAVChat SDK 的大部分功能。对应功能集成和 API 使用可以参考 iOS 的 音视频通话/互动直播/互动白板 对应文档及相关解决方案源码。

macOS NIMAVChat SDK 和 iOS NIMAVChat SDK 也有一些差异,主要体现在以下几个方面:

类名

macOS NIM/AVChat SDK 和 iOS NIM/AVChat SDK 采取的是一份代码两个平台共用的策略,这意味着绝大部分代码都是跨平台的。然而仍有小部分实现必须针对具体平台提供对应的实现。为了处理这种情况同时保证 iOS NIM/AVChat SDK 兼容性,我们使用 @compatibility_alias 对两个平台不同的类名做了处理,详情可以参考 NIMPlatform.h 这个头文件。

远程视频回调接口

在 iOS 上 远程画面的显示回调为

- (void)onRemoteYUVReady:(NSData *)yuvData
                   width:(NSUInteger)width
                  height:(NSUInteger)height
                    from:(NSString *)user

而在 macOS 上,该回调为

- (void)onRemoteVideo:(CMSampleBufferRef)sampleBuffer
                 from:(NSString *)user

开发者可使用系统提供的 AVSampleBufferDisplayLayer 渲染 sampleBuffer 画面。

暂不支持的功能

某些功能在 macOS 上该 SDK 版本暂时也不可用,在 API 中用 API_UNAVAILABLE(macos)标识。