HarmonyOS鸿蒙Next中SoundPool能播放 /data/app/el2/100/base/com.xxx.xxxxxx/haps/entry/files/trail_voice_sound_16/00.m4a 这个路径的音频吗?
HarmonyOS鸿蒙Next中SoundPool能播放 /data/app/el2/100/base/com.xxx.xxxxxx/haps/entry/files/trail_voice_sound_16/00.m4a 这个路径的音频吗? SoundPool 能播放 /data/app/el2/100/base/com.xxx.xxxxxx/haps/entry/files/trail_voice_sound_16/00.m4a 这个路径的音频吗?
可以,通过fs.open()获取fd;不能直接传路径字符串给SoundPool.load()


更多关于HarmonyOS鸿蒙Next中SoundPool能播放 /data/app/el2/100/base/com.xxx.xxxxxx/haps/entry/files/trail_voice_sound_16/00.m4a 这个路径的音频吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS Next的SoundPool支持播放hap包内资源文件。对于/data/app/el2/100/base/com.xxx.xxxxxx/haps/entry/files/路径下的音频文件,需通过资源管理器API转换为Resource对象后加载。直接使用绝对路径播放可能因沙箱限制失败,建议使用resourceManager.getRawFileContent方式获取文件描述符进行播放。M4A格式在鸿蒙音频解码支持范围内。
在HarmonyOS Next中,SoundPool默认不支持直接加载应用沙箱内的绝对路径(如 /data/app/el2/100/base/com.xxx.xxxxxx/haps/entry/files/trail_voice_sound_16/00.m4a)。SoundPool通常通过资源ID或Raw目录下的文件进行加载,或者通过URI方式访问公共目录的音频文件。
对于沙箱内的私有文件,建议使用 load 方法传入文件描述符(FileDescriptor)或AssetFileDescriptor。例如,通过 ohos.file.fs 获取文件后转换为FD,再调用 SoundPool.load(fd, offset, length, priority) 实现加载。
若音频文件打包在应用的Resource目录下,可直接通过资源ID(如 SoundPool.load(context, resId, priority))加载。对于沙箱路径,需通过文件API获取合法FD,避免直接使用绝对路径。

