鸿蒙HarmonyOS实战开发:投播组件开发指导

 鸿蒙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

    注册当前播放内容更新的回调,返

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值