HarmonyOS 不同的soundpool加载不同的声音,播放时只要soundid相同播放的声音也相同怎么解决?
由于现在需要加载60个声音如果只创建一个soundpool加载60个声音时会出现界面卡死,所以需要创建多个soundpool但是出现以下问题。以下代码soundPool1加载的声音是“one.ogg(对应按钮测试一)和“two.ogg(对应按钮测试二)”,soundPool2加载的声音是“three.ogg(对应按钮测试三)”和“four.ogg(对应按钮测试四)“,播放的时候按钮一却播放"three.ogg"声音,请问怎么解决。
import { media } from '@kit.MediaKit';
import { audio } from '@kit.AudioKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';
import fs from '@ohos.file.fs';
let audioRendererInfo: audio.AudioRendererInfo = {
usage: audio.StreamUsage.STREAM_USAGE_MOVIE,
rendererFlags: 0
}
let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
@Entry
@Component
struct BorderExample3 {
soundId1 : number = 0;
soundId2 : number = 0;
soundId3 : number = 0;
soundId4 : number = 0;
soundPool1?: media.SoundPool
soundPool2?: media.SoundPool
async aboutToAppear(): Promise<void> {
let file1 = context.resourceManager.getRawFdSync('one.ogg');
let file2 = context.resourceManager.getRawFdSync('two.ogg');
let file3 = context.resourceManager.getRawFdSync('three.ogg');
let file4 = context.resourceManager.getRawFdSync('four.ogg');
this.soundPool1 = await media.createSoundPool(2,audioRendererInfo);
this.soundId1 = await this.soundPool1.load(file1.fd, file1.offset, file1.length)
this.soundId2 = await this.soundPool1.load(file2.fd, file2.offset, file2.length)
console.log("sound1",this.soundId1)//1
console.log("sound2",this.soundId2)//2
this.soundPool2 = await media.createSoundPool(2,audioRendererInfo);
this.soundId3 = await this.soundPool2.load(file3.fd, file3.offset, file3.length)
this.soundId4 = await this.soundPool2.load(file4.fd, file4.offset, file4.length)
console.log("sound3",this.soundId3)//1
console.log("sound4",this.soundId4)//2
}
build() {
Column() {
Button("测试1").onClick(() => {
this.soundPool1?.play(this.soundId1)
})
Button('测试2').onClick(() => {
this.soundPool1?.play(this.soundId2)
})
Button('测试3').onClick(() => {
this.soundPool2?.play(this.soundId3)
})
Button('测试4').onClick(() => {
this.soundPool2?.play(this.soundId4)
})
}
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS soundpool播放声音的问题
450浏览 • 1回复 待解决
HarmonyOS AudioKit C API实现音频播放,连接蓝牙后,声音播放异常(有突突的声音)
245浏览 • 1回复 待解决
应用中不同模块的UIAbility名称能否相同
1773浏览 • 1回复 待解决
HarmonyOS App,在Native层如何做声音播放和声音采集?
95浏览 • 1回复 待解决
后台播放声音会直接无声
1715浏览 • 1回复 待解决
HarmonyOS Navigation跳转实现,无法正常关闭具有相同实现的不同页面
428浏览 • 1回复 待解决
鸿蒙使用webview加载游戏,应用在后台依然会播放声音,请问下大佬们怎么解决呢?
7249浏览 • 4回复 待解决
如何在多个相同类型的picker组件中赋不同值?
4471浏览 • 1回复 待解决
如何实现在多种设备上不同操作,触发相同事件
1580浏览 • 1回复 待解决
#鸿蒙学习大百科#如何解决不同父组件中的相同子组件无法复用的问题?
96浏览 • 0回复 待解决
SoundPool播放的音频是否支持WMV格式
1856浏览 • 1回复 待解决
SoundPool实现音频播放功能
1247浏览 • 1回复 待解决
在不同页面创建相同id的XComponent时在C++层是否对应同一个实例
1812浏览 • 1回复 待解决
HarmonyOS 打开人脸活体检测页面有声音,如何控制声音开关?
265浏览 • 1回复 待解决
js采集声音出现问题怎么处理?
3270浏览 • 1回复 待解决
以下代码在入参相同的情况下,为什么每次解密返回的结果是不同的呢?
75浏览 • 1回复 待解决
不同渠道版本加载不同资源文件的方式
53浏览 • 1回复 待解决
HarmonyOS taskpool中执行的function时,tid概率性相同
277浏览 • 1回复 待解决
HarmonyOS 使用SoundPool无法播放rawfile下的mp3音频文件
92浏览 • 1回复 待解决
#鸿蒙学习大百科#不同渠道版本加载不同资源文件的方式
119浏览 • 1回复 待解决
HarmonyOS 怎么获取视频的播放时长?
124浏览 • 1回复 待解决
怎么控制播放时不息屏?
6239浏览 • 1回复 待解决
ubuntu19有声音输出,但是没有声音输入
1748浏览 • 1回复 待解决
在ArkTS里为什么有不同参数(参数个数和类型都不同)但函数名相同的两个函数会报方法名冲突呢?
772浏览 • 1回复 待解决
在视频播放器播放时使竖屏播放切换为横屏播放如何更改视频的宽高?
9215浏览 • 1回复 待解决
soundpool不支持多实例,多次创建对应的是同个实例,同时media.createSoundPool()会清空内容重新初始化。soundpool当前最多支持32个并行流,可以在需要加载第33个音频时,将之前加载的音频通过unload卸载掉。