1e41f4b71Sopenharmony_ci# Globalization Subsystem Changelog 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci## cl.resourceManager.1 Change in the Meaning of the Return Value for the API Used to Obtain the rawfile Descriptor 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ciChanged the meaning of the return value for the API used to obtain the rawfile descriptor after the non-decompression feature is added in this version. The change in the meaning of the return value, namely, **descriptor: RawFileDescriptor {fd, offset, length}**, is described as follows: 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci**Before change:** 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci**fd**: file descriptor for accessing the rawfile. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci**offset**: offset for accessing the rawfile. In this case, the value is **0**. 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci**length**: size of the rawfile to access. 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci**After change:** 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci**fd**: file descriptor for accessing the HAP where the rawfile is located. 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci**offset**: offset of the accessed rawfile relative to the HAP. 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**length**: size of the rawfile to access. 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**Change Impact** 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ciIn versions earlier than 4.0.2.2, the rawfile can be accessed only through **fd**. In version 4.0.2.2 or later, the rawfile can be accessed only through **{fd, offset, and length}**. 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**Key API/Component Changes** 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci| **Original API** | 30e41f4b71Sopenharmony_ci| ---------------- | 31e41f4b71Sopenharmony_ci| getRawFd(path: string, callback: AsyncCallback\<RawFileDescriptor>): void | 32e41f4b71Sopenharmony_ci| getRawFd(path: string): Promise\<RawFileDescriptor> | 33e41f4b71Sopenharmony_ci| getRawFileDescriptor(path: string, callback: AsyncCallback\<RawFileDescriptor>): void| 34e41f4b71Sopenharmony_ci| getRawFileDescriptor(path: string): Promise\<RawFileDescriptor>| 35e41f4b71Sopenharmony_ci|| 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**Sample Code** 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ciThe following is an example of calling the **getRawFd** API: 40e41f4b71Sopenharmony_ci``` 41e41f4b71Sopenharmony_citry { 42e41f4b71Sopenharmony_ci this.context.resourceManager.getRawFd("test.ogg", (error, value) => { 43e41f4b71Sopenharmony_ci if (error != null) { 44e41f4b71Sopenharmony_ci console.log(`callback getRawFd failed error code: ${error.code}, message: ${error.message}.`); 45e41f4b71Sopenharmony_ci } else { 46e41f4b71Sopenharmony_ci let fileDescriptor = { 47e41f4b71Sopenharmony_ci fd = value.fd, 48e41f4b71Sopenharmony_ci offset = value.offset, 49e41f4b71Sopenharmony_ci length = value.length 50e41f4b71Sopenharmony_ci } 51e41f4b71Sopenharmony_ci this.avPlayer.fdSrc(fileDescriptor); // Take the audio player as an example. When calling fdSrc, pass fileDescriptor in addition to fd. 52e41f4b71Sopenharmony_ci } 53e41f4b71Sopenharmony_ci }); 54e41f4b71Sopenharmony_ci } catch (error) { 55e41f4b71Sopenharmony_ci console.error(`callback getRawFd failed, error code: ${error.code}, message: ${error.message}.`) 56e41f4b71Sopenharmony_ci }; 57e41f4b71Sopenharmony_ci``` 58