Android解决SoundPool只播放十几秒就停止播放的问题

问题描述

项目中用SoundPool播放一段背景音乐,音乐时长大概一分钟,但是每次只播放了十几秒就停止了

SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC,0);
int soundID = soundPool.load(context, R.raw.sound, 1);
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
    @Override
    public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
        if (sampleId == soundID) {
            soundPool.play(soundID, 1, 1, 0, 0, 1);
        }
    }
});

解决方法

SoundPool本来设计就是用来播放短暂音频的,网上有人说可以降低原来音频的抽样率来减少音频的大小,但我还是不推荐,可能不是那么长的音频还可以用该方法,如果像我用的超过一分钟的甚至更长的音频肯定不行。所以还是果断弃坑,推荐用MediaPlayer代替,如下代码所示

MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.sound);
mediaPlayer.start();

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值