首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Soundpool不工作和某些设备

Soundpool不工作和某些设备
EN

Stack Overflow用户
提问于 2017-07-13 17:40:37
回答 1查看 458关注 0票数 0

我发现了许多关于Soundpool的问题,但他们都说它根本不起作用。对我来说,情况就不同了。

我声明了一个soundpool对象和曲目ids,如下所示

代码语言:javascript
复制
public static SoundPool sp;
public static int comeCloseID, goFurtherID, blinkID, smileID, rotateLeftID, rotateRightID;

然后,我创建了一个initSounds函数来初始化声音池

代码语言:javascript
复制
public static void initSounds()
{
    sp = new SoundPool.Builder().build();
    comeCloseID = sp.load(mContext, R.raw.comeclose,1);
    goFurtherID = sp.load(mContext, R.raw.gofurther,1);
    blinkID = sp.load(mContext, R.raw.blink, 1);
    smileID = sp.load(mContext, R.raw.smile, 1);
    rotateLeftID = sp.load(mContext, R.raw.rotateleft, 1);
    rotateRightID = sp.load(mContext, R.raw.rotateright, 1);

    sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId,
                                   int status) {
            loaded = true;
        }
    });
}

然后,我按如下方式播放声音:

代码语言:javascript
复制
GlobalParams.sp.play(GlobalParams.comeCloseID, 1, 1, 1, 0, 1);

等等。

使用我的三星note5设备,音频文件效果很好。但当我在J1设备或联想设备上试用时,声音就不会播放了。(因此,我可以将loaded的值记录为true)。

我错过了什么?为什么音频不能播放?

我知道我尝试过使用不同的音频格式(WAV、MP3...)但是我没有解决这个案子。

EN

回答 1

Stack Overflow用户

发布于 2017-08-09 05:21:20

尝试将setMaxStreams(5)增加到5,您会将其设置为默认值1:

代码语言:javascript
复制
AudioAttributes attributes = new AudioAttributes.Builder()
                    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                    .setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED)
                    .setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT)
                    .build();

sp = new SoundPool.Builder()
.setMaxStreams(5)
.setAudioAttributes(attributes)
.build();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45076904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档