SDK 初始化代码请参考 入门指南 ,这里假设我们已经完成了初始化,获取了 SDK 实例 livePusher 。
检测浏览器兼容性
SDK 提供静态方法 checkSupport() 用于检测浏览器对于 WebRTC 的兼容性。
TXLivePusher.checkSupport().then(function(data) {
// 是否支持WebRTC
if (data.isWebRTCSupported) {
console.log('WebRTC Support');
} else {
console.log('WebRTC Not Support');
}
// 是否支持H264编码
if (data.isH264EncodeSupported) {
console.log('H264 Encode Support');
} else {
console.log('H264 Encode Not Support');
}
});
自定义采集配置
SDK 进行音视频质量设置时,可以通过接口 setProperty() 针对分辨率、帧率、码率等单独进行自定义设置。
// 设置分辨率
livePusher.setProperty('setVideoResolution', { width: 1920, height: 1080 });
// 设置帧率
livePusher.setProperty('setVideoFPS', 25);
// 设置码率
livePusher.setProperty('setVideoBitrate', 3000);
回调事件通知
SDK 目前提供了回调事件通知,可以通过设置回调事件来了解 SDK 内部的状态信息和 WebRTC 相关的数据统计。具体内容请参考接口 setObserver()。
livePusher.setObserver({
// 推流连接状态
onPushStatusUpdate: function(status, message) {
console.log(status, message);
},
// 推流统计数据
onStatisticsUpdate: function(data) {
console.log('video fps is ' + data.video.framesPerSecond);
}
});
设备管理
SDK 提供了设备管理实例 TXDeviceManager 帮助用户进行获取设备列表、切换设备等操作。
const deviceManager = livePusher.getDeviceManager();
let cameraDeviceId = null;
// 获取设备列表
deviceManager.getDevicesList().then(function(data) {
data.forEach(function(device) {
console.log(device.type, device.deviceId, device.deviceName);
if (device.type === 'video') {
cameraDeviceId = device.deviceId;
}
});
// 切换摄像头设备
if (cameraDeviceId) {
deviceManager.switchCamera(cameraDeviceId);
}
});
调整音量
SDK 提供了音频效果管理实例 TXAudioEffectManager 用来调整音频流的音量。
const audioEffectManager = livePusher.getAudioEffectManager();
audioEffectManager.setVolume(50);
视频效果
SDK 提供了视频效果管理实例 TXVideoEffectManager 用来设置视频流画中画、镜像、滤镜、水印、文本等效果。具体用法请参考 本地混流 。