# å…¨çƒåŒ–å系统ChangeLog ## cl.resourceManager.1 资æºèŽ·å–rawfile文件æè¿°ç¬¦æŽ¥å£å«ä¹‰å˜æ›´ 相较于之å‰çš„版本,在4.0.2.2 版本ä¸ï¼Œæ–°å¢žä¸è§£åŽ‹ç‰¹æ€§ï¼Œrawfile文件æè¿°ç¬¦æŽ¥å£è¿”回值的å«ä¹‰å‘生了å˜åŒ–。接å£ç”¨äºŽè¿”回获å–çš„rawfile文件的descriptor:RawFileDescriptor {fd,offset, length},由于ä¸è§£åŽ‹ç‰¹æ€§å˜æ›´ï¼Œè¿”回值没å‘生å˜åŒ–,但返回值的å«ä¹‰å‘生了å˜åŒ–, å˜åŒ–如下: **新增ä¸è§£åŽ‹ç‰¹æ€§å‰**: fd: 访问rawfile文件的文件æè¿°ç¬¦ï¼› offset: 访问rawfile文件的åç§»é‡ï¼Œæ¤æ—¶ä¸º0ï¼› length: 访问rawfile文件的大å°ã€‚ **新增ä¸è§£åŽ‹ç‰¹æ€§åŽ**: fd: 访问rawfile文件所在hap的文件æè¿°ç¬¦ï¼› offset: 访问rawfile文件相对于hapçš„åç§»é‡ï¼› length: 访问rawfile文件的大å°ã€‚ **å˜æ›´å½±å“** 之å‰åªé€šè¿‡fdå¯ä»¥è®¿é—®åˆ°rawfile文件,在4.0.2.2 åŠä»¥ä¸Šç‰ˆæœ¬éœ€è¦é€šè¿‡{fd, offset, length}ä¸‰ä¸ªå‚æ•°æ‰èƒ½è®¿é—®åˆ°ã€‚ **关键接å£/ç»„ä»¶å˜æ›´** | **æ¶‰åŠæŽ¥å£** | | ---------------- | | getRawFd(path: string, callback: AsyncCallback\<RawFileDescriptor>): void | | getRawFd(path: string): Promise\<RawFileDescriptor> | | getRawFileDescriptor(path: string, callback: AsyncCallback\<RawFileDescriptor>): void| | getRawFileDescriptor(path: string): Promise\<RawFileDescriptor>| || **示例代ç ** 以调用接å£getRawFd为例: ``` try { this.context.resourceManager.getRawFd("test.ogg", (error, value) => { if (error != null) { console.log(`callback getRawFd failed error code: ${error.code}, message: ${error.message}.`); } else { let fileDescriptor = { fd = value.fd, offset = value.offset, length = value.length } this.avPlayer.fdSrc(fileDescriptor); // ä»¥éŸ³é¢‘æ’æ”¾ä¸ºä¾‹ï¼Œè°ƒç”¨fdSrc时需è¦ä¼ fileDescriptor,ä¸èƒ½ä»…ä¼ fd。 } }); } catch (error) { console.error(`callback getRawFd failed, error code: ${error.code}, message: ${error.message}.`) }; ```