鸿蒙NEXT开发实战往期必看文章:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)
系统提供了音视频发声设备统一投播组件AVCastPicker,作为播控中心系统级设备切换、投播能力选择入口。应用通过接入统一投播组件,可以实现在应用内及系统播控中心,将音视频资源通过Cast+协议/DLNA协议投播到远端设备。
通过本开发指导,完成一次音视频跨设备投播。
约束与限制
需同时满足以下条件,才能使用该功能:
- 设备限制
本端设备:HarmonyOS NEXT Developer Preview0及以上版本的手机设备
远端设备:HarmonyOS NEXT Developer Preview0及以上版本的2in1设备、HarmonyOS3.1及以上版本的华为智慧屏、支持标准DLNA协议的设备
- 使用限制
- 双端设备打开蓝牙和WIFI,并可访问网络。
接口说明
在开发具体功能前,请先查阅参考文档,获取详细的接口说明。
- AVCastPicker:投播组件,提供设备发现认证连接的统一入口。
- AVCastController:投播控制器,用于投播场景下,完成播放控制、远端播放状态监听等操作。
说明
AVCastController由系统获取并返回,在设备连接成功后获取,在设备断开后不能继续使用,否则会抛出异常。
支持在线DRM视频资源投播能力,需注册DRM许可证请求回调函数,获取许可证后,调用处理许可证响应函数。
接口
说明
getAVCastController(callback: AsyncCallback<AVCastController>): void
获取远端投播时的控制接口。
on(type: 'outputDeviceChange', callback: (state: ConnectionState, device: OutputDeviceInfo) => void): void
注册设备变化的回调,同时包含了设备的连接状态。
sendControlCommand(command: AVCastControlCommand, callback: AsyncCallback<void>): void
投播会话的控制接口,用于进行投播中的各种播控指令。
setAVMetadata(data: AVMetadata, callback: AsyncCallback<void>): void
配置媒体信息,包括ID,标题,作者以及DRM类型等。
prepare(item: AVQueueItem, callback: AsyncCallback<void>): void
准备播放,进行资源加载和缓冲,不会触发真正的播放。
start(item: AVQueueItem, callback: AsyncCallback<void>): void
开始播放媒体资源。
processMediaKeyResponse(assetId: string, response: Uint8Array): Promise<void>
提供DRM资源所需的秘钥。
on(type: 'keyRequest', callback: KeyRequestCallback): void
注册DRM秘钥请求的回调。
on(type: 'playbackStateChange', filter: Array<keyof AVPlaybackState> | 'all', callback: (state: AVPlaybackState) => void): void
注册播放状态变化的回调。
on(type: 'mediaItemChange', callback: Callback<AVQueueItem>): void
注册当前播放内容更新的回调,返