HarmonyOS 鸿蒙Next ArkTS如何通过SoundPool播放rawfile目录下的mp3格式的短音频

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

HarmonyOS 鸿蒙Next ArkTS如何通过SoundPool播放rawfile目录下的mp3格式的短音频

如何通过SoundPool播放rawfile目录下的mp3格式的短音频,期望提供个Demo。 加载Lottie动画时,需要触发动画相应的mp3短音频资源,存放路径为:resources/rawfile/xxx.mp3

3 回复
加载rawfile目录资源,需要通过

load(fd: number, offset: number, length: number, callback: AsyncCallback<number>): void 或者

load(fd: number, offset: number, length: number): Promise<number>实现:

可参考Api文档进行上述方法搜索查看demo:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-multimedia-soundpool-0000001774281610

您可以仔细看一下上面文档里面的demo,已经说明了实现方法

load(uri: string, callback: AsyncCallback<number>): void

加载音频资源。使用callback方式异步获取资源ID,入参uri通过获取文件fd生成以"fd://"开头的文件描述字符串。

该方法不支持加载rawfile目录资源,需要通过load(fd: number, offset: number, length: number, callback: AsyncCallback<number>): void或者load(fd: number, offset: number, length: number): Promise<number>实现。

就是你那个写法不支持加载rawfile目录资源,需要通过load(fd: number, offset: number, length: number, callback: AsyncCallback<number>): void或者load(fd: number, offset: number, length: number): Promise<number>实现,你需要改一下你上面的写法,然后demo的话你看最下面那个就可以

更多关于HarmonyOS 鸿蒙Next ArkTS如何通过SoundPool播放rawfile目录下的mp3格式的短音频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,使用ArkTS(Ark TypeScript)通过SoundPool播放rawfile目录下的MP3格式短音频,可以按以下步骤进行:

  1. 引入必要的模块:首先,确保在ArkTS项目中引入了处理音频的模块,如@ohos.multimedia.soundpool

  2. 加载音频资源:使用SoundPool实例的load方法加载rawfile目录下的MP3文件。注意路径格式,通常需指定为/rawfile/<filename.mp3>

  3. 播放音频:加载完成后,通过SoundPool的play方法播放音频。可以指定音量、循环次数等参数。

  4. 释放资源:播放完毕后,记得释放SoundPool实例和相关资源,以避免内存泄漏。

示例代码(简化版,未包含完整错误处理和资源管理):

import soundPool from '@ohos.multimedia.soundpool';

let pool = new soundPool.SoundPool({
    maxStreams: 5,
    streamType: soundPool.StreamType.MUSIC,
});

let audioId = pool.load('/rawfile/sample.mp3', 1);
pool.play(audioId, 1, 1, 0, 0, 1);

// 记得在适当时候释放pool资源

请确保MP3文件已正确放置在rawfile目录下,并且文件名及路径无误。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部