HarmonyOS鸿蒙Next中使用AvPlayer播放应用文件报错errorCode 5400102, errorMsg Operate Not Permit: failed to SetSourceFd

HarmonyOS鸿蒙Next中使用AvPlayer播放应用文件报错errorCode 5400102, errorMsg Operate Not Permit: failed to SetSourceFd 使用AvPlayer播放应用文件报错errorCode 5400102, errorMsg Operate Not Permit: failed to SetSourceFd

有人遇到过吗?

11 回复

老哥解决没

更多关于HarmonyOS鸿蒙Next中使用AvPlayer播放应用文件报错errorCode 5400102, errorMsg Operate Not Permit: failed to SetSourceFd的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


解决了,不是这个代码的问题,是文件的问题,

请问是怎么解决的呀,我也遇到这个问题了,

使用AVRecorder录制完之后没有关闭文件的问题,但是调用fs.closeSync(file)关闭失败了。后面使用了codelabs的录音机的录制,成功了。录制文件使用的this.mediaManager.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO)创建的文件,后面使用的mediaLibrary.FileAsset.close()关闭的。

我之前遇到的问题应该跟你的差不多,抛出Operation not permitted错误,没有授权读取媒体文件,后面我是通过申请ohos.permission.READ_MEDIA这个权限解决的,可以看下对你有没有帮助

申请了这个权限,我这个逻辑是先授予权限,录制音频,在录音列表里可以点击播放这个音频文件,我打断点看的是将文件传给AVPlayer.url之后就走到错误回调了。

申请了权限,同时在传url之前也做了权限校验,仍然提示错误的话,我也不太懂了 ̄□ ̄||
我当时只做了这两步就没问题了,可以正常读取手机里的音频文件,

还有一些错误信息
=====================Backtrace========================

1: /system/lib64/libark_jsruntime.so(+245e4b)

2: /system/lib64/libark_jsruntime.so(+15bdaf)

3: /system/lib64/libark_jsruntime.so(+389ec7)

4: /system/lib64/libark_jsruntime.so(+3801bb)

5: /system/lib64/libace_napi_ark.z.so(+1dbeb)

6: /system/lib64/libace_napi_napi.z.so(+184bb)

7: /system/lib64/libmedia_avplayer.z.so(+1e1c3)

8: /system/lib64/libmedia_avplayer.z.so(+ec87)

9: /system/lib64/libmedia_avplayer.z.so(+f01f)

#10: /system/lib64/libuv.so(+11c87)
#11: /system/lib64/libuv.so(+15daf)
#12: /system/lib64/libuv.so(+15753)
#13: /system/lib64/libuv.so(+1622b)
#14: /system/lib64/libruntime.libruntime.z.so(+2b87b)
#15: /system/lib64/platformsdk/libeventhandler.libeventhandler.z.so(+14f0f)

在HarmonyOS鸿蒙Next中,使用AvPlayer播放应用文件时,报错errorCode 5400102,错误信息为Operate Not Permit: failed to SetSourceFd。此错误通常与文件访问权限或文件描述符设置不当有关。

可能的原因包括:

  • 文件路径无效或文件不存在。
  • 应用未获得访问文件的权限。
  • 文件描述符未正确设置或已关闭。

解决方法:

  • 检查文件路径是否正确,确保文件存在。
  • 确认应用已获得访问文件的权限,可在config.json中配置ohos.permission.READ_MEDIA权限。
  • 确保文件描述符在调用SetSourceFd时是有效的。

在HarmonyOS鸿蒙Next中使用AvPlayer播放应用文件时,如果遇到错误码 5400102 和错误信息 Operate Not Permit: failed to SetSourceFd,通常是由于以下原因之一:

  • 文件路径无效或文件不存在:请确保提供的文件路径正确,且文件存在于指定位置。
  • 文件权限不足:检查应用是否具有读取目标文件的权限,确保在 config.json 中正确配置了文件的访问权限。
  • 文件格式不支持:确认文件格式是否被AvPlayer支持,必要时转换文件格式。
  • 资源句柄问题:确保文件句柄正确打开且未在播放前被关闭。

建议:检查文件路径和权限,确认文件格式支持,并确保文件句柄正确使用。

如果问题仍然存在,建议查看官方文档或联系技术支持。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!