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
有人遇到过吗?
老哥解决没
更多关于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支持,必要时转换文件格式。
- 资源句柄问题:确保文件句柄正确打开且未在播放前被关闭。
建议:检查文件路径和权限,确认文件格式支持,并确保文件句柄正确使用。
如果问题仍然存在,建议查看官方文档或联系技术支持。