HarmonyOS 鸿蒙Next resourceManager.getRawFd()报错 error code: 9001005,error message: Failed to get descriptor

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next resourceManager.getRawFd()报错 error code: 9001005,error message: Failed to get descriptor

以下是 resourceManager.getRawFd() 相关代码,

let rawFileDescriptor = await this.context.resourceManager.getRawFd(songItem.src).catch((error: BusinessError) => {
    Logger.error(TAG,`resourceManager error code ${error.code} message ${error.message} src ${this.songItem?.src}`);
    prompt.showToast({message:"音频加载失败(getRawFd,"+error.message+")",duration:3000});
})

以下是错误日志内容

SongItemBuilder, resourceManager error code 9001005 message Failed to get descriptor src /data/storage/el2/base/haps/xiangbo/files/375c7c616bb94e8da2e93af98f99cba1.mp3

要读取的文件,我是从网络上下载到手机本地目录,然后调用resourceManager.getRawFd失败,请懂行的朋友帮忙看看呢!!!


更多关于HarmonyOS 鸿蒙Next resourceManager.getRawFd()报错 error code: 9001005,error message: Failed to get descriptor的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

自己解决了,resourceManager.getRawFd,这个是读取app包内自带mp3的播放,而播放网络mp3文件不能使用这个,我选用了另外一个组件 media.AVPlayeravPlayer.url = mp3网络地址,这样即可正常播放。

更多关于HarmonyOS 鸿蒙Next resourceManager.getRawFd()报错 error code: 9001005,error message: Failed to get descriptor的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


// 打开视频文件获取文件描述符 const file = fs.openSync(videoPath, fs.OpenMode.READ_ONLY) // 创建AVImageGenerator对象 let avImageGenerator = await media.createAVImageGenerator(); // 设置fdSrc avImageGenerator.fdSrc = { fd: file.fd } 可以这样尝试下

那个错误可能是传入的相对路径有误,可以检查传入的相对路径是否符合预期

补充说明下,要读取的文件是动态从网络下载到本地,是一个mp3文件,从七牛服务器下载到手机上进行音频播放,遇到的这个错误,看了resourceManager.getRawFd文档说到读取resource目录下文件,那么非app下resource目录下的文件要怎么读取呢?

请问找到解决方法了吗,我这边的需求是通过相机拍视频或者选择相册视频上传到oss服务器,截取视频封面,上传到oss服务器,

选择相册视频上传到oss服务器,截取视频封面,上传到oss服务器这个问题解决了吗?

针对您提到的HarmonyOS(鸿蒙)系统中resourceManager.getRawFd()方法报错,错误代码为9001005,错误消息为“Failed to get descriptor”的问题,这通常表明在尝试获取资源管理器中的文件描述符时遇到了障碍。可能的原因包括但不限于:

  1. 资源未正确加载:在调用getRawFd()之前,确保所需资源已被正确加载并初始化。

  2. 权限问题:检查应用是否拥有访问该资源的必要权限。鸿蒙系统对资源访问有严格的权限控制,缺少权限可能导致无法获取文件描述符。

  3. 资源已被占用或释放:如果资源在之前的操作中已被其他进程或线程占用,或者被意外释放,那么再次尝试获取其文件描述符将会失败。

  4. API使用不当:确认resourceManager.getRawFd()的调用方式符合鸿蒙系统的API规范,包括参数传递和调用时机。

  5. 系统Bug:在某些情况下,系统本身的Bug也可能导致此类错误。

针对上述问题,建议检查代码逻辑,确认资源状态,以及核实权限配置。如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部