HarmonyOS 鸿蒙Next如何播放本地mp3文件
HarmonyOS 鸿蒙Next如何播放本地mp3文件
playSound() {
//创建soundPool实例
let soundPool: media.SoundPool;
let audioRendererInfo: audio.AudioRendererInfo = {
usage: audio.StreamUsage.STREAM_USAGE_MUSIC,
rendererFlags: 1
}
media.createSoundPool(5, audioRendererInfo, (error: BusinessError, soundPool_: media.SoundPool) => {
if (error) {
console.log(‘zd----’,
return;
} else {
soundPool = soundPool_;
console.log(‘zd----’,
let file: fileIo.File;
let soundID: number = 0;
let fileSize: number = 1; //通过fileIo.stat()获取size值
let uri: string = “”;
//获取fd的描述信息
fileIo.open(’…/…/resources/rawfile/kazicui.mp3’, fileIo.OpenMode.READ_ONLY).then((file_: fileIo.File) => {
file = file_;
console.log(‘zd----’, "file fd: " + file.fd);
uri = ‘fd://’ + (file.fd).toString()
soundPool.load(file.fd, 0, fileSize).then((soundId: number) => {
console.log(‘zd----’, ‘Succeeded in loading soundpool’);
soundID = soundId;
}, (err: BusinessError) => {
console.log(‘zd----’, 'Failed to load soundpool and catch error is ’ + err.message);
});
}).catch((e: BusinessError) => {
console.log(‘zd----’, ‘Failed to load soundpool and catch error is ’ + e.message + ’ code:’ + e.code);
});
}
});
}
提示Failed to load soundpool and catch error is No such file or directory code:13900002
音频文件要放在哪里
//创建soundPool实例
let soundPool: media.SoundPool;
let audioRendererInfo: audio.AudioRendererInfo = {
usage: audio.StreamUsage.STREAM_USAGE_MUSIC,
rendererFlags: 1
}
media.createSoundPool(5, audioRendererInfo, (error: BusinessError, soundPool_: media.SoundPool) => {
if (error) {
console.log(‘zd----’,
Failed to createSoundPool
)return;
} else {
soundPool = soundPool_;
console.log(‘zd----’,
Succeeded in createSoundPool
)let file: fileIo.File;
let soundID: number = 0;
let fileSize: number = 1; //通过fileIo.stat()获取size值
let uri: string = “”;
//获取fd的描述信息
fileIo.open(’…/…/resources/rawfile/kazicui.mp3’, fileIo.OpenMode.READ_ONLY).then((file_: fileIo.File) => {
file = file_;
console.log(‘zd----’, "file fd: " + file.fd);
uri = ‘fd://’ + (file.fd).toString()
soundPool.load(file.fd, 0, fileSize).then((soundId: number) => {
console.log(‘zd----’, ‘Succeeded in loading soundpool’);
soundID = soundId;
}, (err: BusinessError) => {
console.log(‘zd----’, 'Failed to load soundpool and catch error is ’ + err.message);
});
}).catch((e: BusinessError) => {
console.log(‘zd----’, ‘Failed to load soundpool and catch error is ’ + e.message + ’ code:’ + e.code);
});
}
});
}
提示Failed to load soundpool and catch error is No such file or directory code:13900002
音频文件要放在哪里
1 回复
作为IT专家,对于HarmonyOS 鸿蒙Next如何播放本地mp3文件的问题,以下提供几种专业方法:
方法一:使用华为音乐应用
- 确保本地mp3文件的格式被华为音乐应用支持(通常支持mp3、m4a、wav等)。
- 检查文件夹命名,避免使用特殊字符,以确保文件能被正常扫描。
- 在华为音乐应用中检查扫描设置,确保没有将音乐文件所在的文件夹设置为过滤项。
- 确保华为音乐应用具有访问存储空间的权限。
方法二:使用Media Kit中的AVPlayer API
- 创建AVPlayer实例对象,并加载音频资源。
- 设置AVPlayer的回调函数,处理播放状态的变化。
- 调用AVPlayer的play方法开始播放。
方法三:使用AudioRenderer API
- 配置音频渲染参数,并创建AudioRenderer实例。
- 调用AudioRenderer的start方法开始播放音频数据。
请注意,以上方法都需要基于HarmonyOS的开发环境进行实现。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。