首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android SoundPool声音播放断续

Android SoundPool声音播放断续
EN

Stack Overflow用户
提问于 2016-05-18 23:23:59
回答 2查看 144关注 0票数 1

我有几个GridView项目,当它们被选中时会播放一个小的.ogg文件。它们是使用SoundPool类播放的,但是这个类看起来非常断断续续--有时是声音播放,有时不是;没有模式,所以我很难弄清楚它为什么要这样做。

这是我的代码:

代码语言:javascript
复制
public void playSelectionSound(){
        SoundPool sp = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
        int soundId = sp.load(this, R.raw.char_select, 1);
        sp.play(soundId, 1, 1, 0, 0, 1);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-20 15:21:15

最后,我转而使用MediaPlayer而不是SoundPool:

代码语言:javascript
复制
MediaPlayer mp = MediaPlayer.create(this, R.raw.char_select); //open media player
        mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mp.release();
            }
        });
        mp.start(); //play the sound

每次都管用。

票数 1
EN

Stack Overflow用户

发布于 2016-05-19 02:06:00

您不应该尝试在加载后立即播放它,因为加载可能需要时间。相反,您应该使用SoundPool.OnLoadCompleteListener()并在回调中播放它。在这里,您可以确保声音池已成功加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37311614

复制
相关文章

相似问题

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