HarmonyOS鸿蒙Next中真机环境下AVPlayer设置网络类型的音频url无法播放

HarmonyOS鸿蒙Next中真机环境下AVPlayer设置网络类型的音频url无法播放 环境:华为Mate 40、鸿蒙4.0.0
应用/Api版本:ArkTS应用、Api9
前提条件:已配置网络权限

错误信息:控制台一直报current state is not idle, unsupport set url错误。如下截图

期望效果:能正常播放网络资源音频。

源代码流程截图:

步骤1源代码:

步骤2源代码:

步骤3源代码:

结语:上面的流程截图代码是哪里有问题吗?为什么网络资源类型的音频url播放不了?

8 回复

已解决。感谢大家~。原因是获取到的音频资源url中携带了参数导致,音频资源url中是不能携带参数的。

更多关于HarmonyOS鸿蒙Next中真机环境下AVPlayer设置网络类型的音频url无法播放的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


先初始化avplayer备用,URL只能在idle状态下才能设置,你报这个错误说明avplayer还没准备好,

流程没有问题,已解决了,是获取到的音频资源url中携带了参数导致,音频资源url中是不能携带参数的。

期待HarmonyOS能在未来推出更多针对企业用户的解决方案。

流程错了,报错信息说得很明白了只有 idle 状态才可以设置url

已解决了,不是流程错,是获取到的音频资源url中携带了参数导致,音频资源url中是不能携带参数的。

在HarmonyOS鸿蒙Next中,使用AVPlayer播放网络类型的音频URL时出现无法播放的问题,可能是由于以下几点原因:

  1. 网络权限未配置:确保应用已在config.json文件中正确配置了网络权限,如ohos.permission.INTERNET

  2. URL格式或协议问题:确认音频URL的格式和协议是否正确,AVPlayer支持的协议包括HTTP、HTTPS等。如果URL包含特殊字符或格式不正确,可能导致无法播放。

  3. 网络请求超时或失败:检查网络连接是否正常,确保设备能够访问指定的URL。如果网络请求超时或失败,AVPlayer将无法加载音频。

  4. AVPlayer配置问题:检查AVPlayer的配置是否正确,如setSource方法中的URL参数是否准确,以及是否调用了prepareplay方法。

  5. 系统或API限制:某些系统版本或API可能存在限制,导致无法播放特定类型的网络音频。可以查阅官方文档,确认当前版本的AVPlayer是否支持该音频格式或协议。

  6. 日志分析:通过查看日志(如使用HiLog)来获取更多错误信息,定位具体问题。

如果以上检查均无问题,建议进一步排查设备或系统环境是否存在异常。

在HarmonyOS鸿蒙Next中,如果AVPlayer无法播放网络类型的音频URL,可能是由于以下原因:

  1. 网络权限:确保应用已获取网络访问权限,在config.json中添加ohos.permission.INTERNET权限。

  2. URL格式:检查音频URL是否正确,确保URL是有效的且可访问。

  3. 网络状态:确认设备网络连接正常,尝试使用浏览器访问该URL以验证网络可达性。

  4. AVPlayer配置:确保AVPlayer正确初始化,并设置了正确的数据源。例如:

    AVPlayer avPlayer = new AVPlayer();
    avPlayer.setSource(new AVSource(url));
    avPlayer.prepare();
    avPlayer.play();
    
  5. 日志排查:查看日志输出,检查是否有相关错误信息,如网络超时或URL解析失败。

如果问题仍未解决,建议参考官方文档或社区论坛获取更多支持。

回到顶部