Skip to main content

媒体资源管理器

在 World 构造之后,可以通过 World 的 getMediaManager 方法获取到音视频管理单例模块,对 World 下所有用到的 <video/><audio/> 进行管理。

预埋音视频的初始化

// 初始化 mediaManager 类
world.getMediaManager({ videoCount: 3, audioCount: 2 })

通过调用 getMediaManager 方法里传入 videoCountaudioCount 数量,SDK 可以提前创建出对应数量的媒体标签资源,通过用户进入应用的初始交互行为来提前激活/授权应用运行中需要用到的<video/><audio/>标签。

另外若未创建 world 对象,则可以直接使用MediaManager.getInstance({ videoCount: 3, audioCount: 2 })来初始化

创建视频类型对象

const mediaManager = world.getMediaManager()

const videoInstance = mediaManager.getVideo({
src: 'xxx.mp4',
controls: false,
crossOrigin: true,
preload: 'auto',
playsInline: true,
width: '100px',
height: '100px',
muted: videoDataRef.current[index].mute,
autoPlay: videoDataRef.current[index].autoPlay,
objectFit: 'cover',
})

通过音视频管理器里提供的 getVideo 方法,可以获取到一个 Video 类型的实例对象 videoInstance,其中该 videoInstance 实例对应的 <video/> 为 sdk 预处理过的标签,业务不再需要做机型的兼容处理

Video 类型基础方法

// 播放视频
videoInstance.play()
// 暂停视频
videoInstance.pause()
// 停止
videoInstance.stop()
// 静音
videoInstance.mute()
// 恢复声音
videoInstance.unmute()
// 销毁视频
videoInstance.remove()
// 获取对象对应video原生标签
videoInstance.getElement()

创建音频类型对象

const mediaManager = world.getMediaManager()

const audioInstance = mediaManager.getAudio({
src: 'xxx.mp3',
muted: false,
autoPlay: true,
})

通过音视频管理器里提供的 getAudio 方法,可以获取到一个 Audio 类型的实例对象 audioInstance,其中该 audioInstance 实例对应的 <audio/> 为 sdk 预处理过的标签,业务不再需要做机型的兼容处理

Audio 类型基础方法

// 播放
audioInstance.play()
// 暂停
audioInstance.pause()
// 静音
audioInstance.mute()
// 恢复声音
audioInstance.unmute()
// 销毁视频
audioInstance.remove()
// 获取对象对应audio原生标签
audioInstance.getElement()