如何在Android中使用SoundPool播放音效

这篇文章给大家介绍如何在Android中使用SoundPool播放音效,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

privateSoundPool.BuilderspBuilder;
privateSoundPoolsoundPool;
privateInteger[]fmSound=FmManager.getRawAudios();

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
if(null==spBuilder){
spBuilder=newSoundPool.Builder();
AudioAttributes.Builderbuilder=newAudioAttributes.Builder();
builder.setLegacyStreamType(AudioManager.STREAM_MUSIC);
spBuilder.setAudioAttributes(builder.build());
spBuilder.setMaxStreams(10);
}
if(null==soundPool){
soundPool=spBuilder.build();
}
}else{
if(null==soundPool){
soundPool=newSoundPool(10,AudioManager.STREAM_MUSIC,10);//最多播放10个音效,格式为Steam_music,音质为10
}
}
soundPool.setOnLoadCompleteListener(this);
if(null==fmArray){
fmArray=newSparseIntArray();
}
if(null==streamArray){
streamArray=newSparseIntArray();
}
for(inti=0;i<fmSound.length;i++){
fmArray.put(i+1,soundPool.load(this,fmSound[i],1));//将需要播放的资源添加到SoundPool中,并保存返回的StreamID,通过StreamID可以停止某个音效
}


privatevoidplayFmByPosition(intresultId){
if(null==soundPool||resultId<0||fmArray==null||fmArray.size()<0||streamArray==null)
return;
LogUtils.e(resultId+"------------"+fmArray.size());

if(resultId<fmArray.size()){
if(!FmPlaying.isPlay(resultId)){
intfmPlayId=soundPool.play(fmArray.get(resultId+1),1,1,0,-1,1);
streamArray.put(resultId,fmPlayId);
FmPlaying.setPlay(resultId,true);
}else{
soundPool.stop(streamArray.get(resultId));
streamArray.removeAt(resultId);
FmPlaying.setPlay(resultId,false);
}
}
}

staticclassFmPlaying{
privatestaticSparseBooleanArrayplayArray=newSparseBooleanArray();

publicstaticbooleanisPlay(intposition){
returnplayArray.get(position,false);
}

publicstaticvoidsetPlay(intposition,booleanplay){
playArray.put(position,play);
}
}

关于如何在Android中使用SoundPool播放音效就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

如何在Android中使用SoundPool播放音效

发布于 2021-03-24 01:21:32
收藏
分享
海报
0 条评论
176
上一篇:使用Bootstrap怎么制作一个朝代历史表 下一篇:怎么在Asp.Net Core中使用swagger生成一个api文档
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码