更新日志
1.2.3
功能
- 增加了 resubscribe 事件,在远端流被 SDK 自动重新订阅时触发
缺陷
- 修复新版本 Chrome(>69) 码率设置不准的问题
1.2.2
缺陷
修复默认合流模版异常报错的问题
修复 publish 事件和 unpublish 事件可能乱序的问题
修复鉴权请求异常错误码没有重试的问题
1.2.1
功能
增加 republish 事件
// 当发布者本身因为网络问题断线重连后重新发布成功时触发
// 一般用来更新发布者自己的合流配置(重新发布后需要重新调用一次合流 api)
myRTC.on("republish", () => {
myRTC.setMergeStreamLayout(...)
})
缺陷
修复 Chrome 69 无法连麦的问题
1.2.0
API 修改
unpublish 和 unsubscribe 更变为同步方法
myRTC.unpublish();
console.log('unpublish success!');
功能
增加持续订阅模式
普通订阅需要和对端的发布状态耦合,即只有发布方发布才订阅,发布方取消发布即订阅结束。
持续订阅是指无视对端的发布状态,无论他是否发布都可以发起订阅并返回一个 Stream 对象。
这个 Stream 对象可以立刻调用其的 play 方法,SDK 会自动检测对端的发布状态将媒体数据填充进 Stream 对象。
只有当主动调用 unsubscribe 或者对端退出房间持续订阅才会结束。
// 这里 myRTC 指的是实例化的 QNRTCSession 对象
// 第二个参数为 true,代表使用持续订阅模式订阅
const stream = await myRTC.subscribe(userId, true);
自动切换媒体设备的逻辑可以配置
// 关闭自动切换设备(默认打开)
deviceManager.autoSwitch = false;
增加媒体设备事件区分设备插入/设备拔出
deviceManager.on("device-add", (device) => {
console.log("检测到新设备",device);
});
deviceManager.on("device-remove", (device) => {
console.log("设备被移除",device);
});
重复调用 getLocalStream 会自动切流(如果正在发布)
const stream = await deviceManger.getLocalStream({ video: { enabled: true } });
await myRTC.publish(stream);
// 会自动切换到新的流上
await deviceManager.getLocalStream({ screen: { enabled: true }});
// 如果需要同时采集复数的流,可以实例化一个新的 deviceManager
import { DeviceManager } from "pili-rtc-web";
const newDeviceManager = new DeviceManager();
采集的分辨率支持范围配置
const stream = await deviceManager.getLocalStream({
video: {
enabled: true,
// width 希望能取到1280
// 如果不能就在 600-1500的范围内选择一个摄像头支持的值,还是不能就抛出错误
width: { min: 600, max: 1500, ideal: 1280 },
// height 希望能取到720,如果失败就抛出错误
height: { exact: 720 },
}
})
增加音频采集参数控制 WebRTC 的一些音频优化选项
deviceManager.getLocalStream({
audio: {
enabled: true,
autoGainControl: false, // 关闭自动增益,默认打开
echoCancellation: false, // 关闭回声消除,默认打开
noiseSuppression: false, // 关闭噪声抑制,默认打开
}
});
缺陷
- 修复 roomToken 非法无限重试的问题
- 修复 IE 引入 SDK 的 js 报错问题
- 修复 Firefox 候选交换导致连麦失败的问题
优化
- 增加连麦在弱网环境下的稳定性
- stream 的 onAudioBuffer 方法现在会直接返回 AudioBuffer 对象
1.1.0
* 功能
* 支持单独屏幕共享的模式(窗口模式/屏幕模式)
* 屏幕共享支持配置分辨率
* 屏幕共享插件支持 360 浏览器
* 支持单独合流音频或者单独合流视频
* 缺陷
* 修复纯音频连麦可能导致的无法订阅
* 修复 SDK 长时间断线导致的状态不同步
* 修复火狐浏览器和屏幕共享模式下带宽控制失效
* 修复 minify 后的代码错误对象不能正常显示的问题
* 修复重复采集导致没有即使释放旧采集流的问题
* 修复网络波动下的视频闪烁问题
* 优化
* 现在使用 USB 媒体设备连麦,设备被拔出时会自动切到系统设备
* 现在 SDK 生成的 video 标签会默认带上基本的 css
* 增加一些 http 请求的重试策略,增加稳定性
1.0.0
* 功能
* 增加屏幕共享功能
* 增加外部音频导入功能
* 支持 360 浏览器
* 缺陷
* 修复发布过程导致的 ICE 失败
* 修复重复发布的错误
* 修复加入房间中 WS 断连导致无法重连
* 优化
* 增加连麦过程中 p2p 连接可用性, 增加重连策略
0.2.0
- 支持合流配置
- 修改 stream.play 方法
0.1.1
- 支持音视频码率的配置
- 支持 USB 外置媒体设备
- 支持 Mac Safari(11.0以上)
- 支持纯音频互动
0.1.0
- 基本的音视频通话功能
- 支持内置音视频采集
- 支持 Typescript
- 支持踢人功能
- 支持静音功能
- 支持帧率配置
- 支持视频尺寸配置
- 支持自动重连
- 支持丰富的消息回调
- 支持视频的大小窗口切换