HarmonyOS 鸿蒙Next中使用AVCastPicker实现(推送模式)投屏

HarmonyOS 鸿蒙Next中使用AVCastPicker实现(推送模式)投屏

目标:将视频流传给电视,电视端拉流播放

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/distributed-playback-guide#section1557419538816

已实现:

  1. 点击AVCastPicker组件;
  2. 搜索设备
  3. 选择设备

问题:

  1. 选择设备后,电视没反应,不知道问题出在哪里;
  2. 文档里面各个部分太独立,不清楚衔接的细节;
  3. 需要一个demo。

更多关于HarmonyOS 鸿蒙Next中使用AVCastPicker实现(推送模式)投屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

更多关于HarmonyOS 鸿蒙Next中使用AVCastPicker实现(推送模式)投屏的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中使用AVCastPicker实现推送模式投屏:

  1. 导入模块:
import avCast from '@ohos.multimedia.avcast';
import picker from '@ohos.file.picker';
  1. 创建投屏实例:
let avCastController = avCast.createAVCastController();
  1. 初始化投屏参数:
let castOption: avCast.AVCastOption = {
  mode: avCast.CastMode.CAST_MODE_PUSH
};
  1. 启动投屏选择器:
let avCastPicker = new picker.AVCastPicker();
avCastPicker.select(castOption).then((deviceId) => {
  avCastController.startCast(deviceId);
});

注意:需在config.json中申请ohos.permission.MEDIA_LOCAL和ohos.permission.DISTRIBUTED_DATASYNC权限。

在HarmonyOS Next中使用AVCastPicker实现推送模式投屏时,遇到电视无反应的问题,可能涉及以下几个关键点:

  1. 设备连接验证:
  • 确保手机和电视在同一局域网
  • 检查电视是否支持DLNA/CAST协议
  • 确认电视端已开启投屏服务
  1. 代码实现要点:
  • 需要正确初始化AVCastController
  • 实现AVCastStateCallback回调监听状态变化
  • 设置媒体源时确保URL是电视可访问的地址
  1. 常见问题排查:
  • 检查网络权限是否申请
  • 验证媒体URL的可用性
  • 查看Logcat中的AVCast相关错误日志
  1. 代码示例片段:
let castController = new AVCast.AVCastController();
let castStateCallback = {
    onCastStateChanged: (state: AVCast.AVCastState) => {
        // 处理状态变化
    }
};
castController.registerCallback(castStateCallback);

// 设置媒体源
let mediaItem = {
    mediaUrl: "http://your-stream-url",
    mediaType: AVCast.MediaType.VIDEO
};
castController.setMediaItem(mediaItem);

建议重点检查设备发现阶段是否返回了有效的设备对象,以及setMediaItem调用是否成功执行。如果问题仍然存在,可以提供更详细的日志信息以便进一步分析。

回到顶部