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,只需要做以下步骤:
下载完整版本的 NIM/NIMAVChat SDK,得到 NIMSDK.framework 和 NIMAVChat.framework 并导入工程
在
General
->Embedded Binaries
里,添加 NIMSDK.framework ,NIMAVChat.framework 文件和 NVS.framework 文件。添加其他 macOS NIM/NIMAVChat SDK 依赖库
- CoreServices.framework
- AVFoundation.framework
- libc++.tbd
- libsqlite3.0.tbd
- libz.tbd
- VideoToolbox.framework
- AudioUnit.framework
在
Build Settings
->Other Linker Flags
里,添加选项-ObjC
- 在需要使用 macOS NIM SDK 的地方
import <NIMSDK/NIMSDK.h>
- 在需要使用 macOS NIMAVChat SDK 的地方
#import <NIMAVChat/NIMAVChat.h>
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)
标识。