2

所以基本上,当第一个视图加载到我的 viewpager 中时,我想要一个开始的声音效果。我可以使用 setOnPageChangeListener 获取其他页面的声音。

所以我再次问,我如何在加载时将声音放入我的 viewpager 中?

我当前的浏览器代码是这样的

mAdapter = new MyPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mAdapter);
mViewPager.setOnPageChangeListener(new OnPageChangeListener(){

        @Override
        public void onPageSelected(int position) {
            mSoundManager.playSound(position + 1);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {

        }

        @Override
        public void onPageScrollStateChanged(int arg0) {

        }
    });

编辑:解决

我找到了一个解决方案,我不知道它是目前最好的还是正确的解决方案,但这就是我所做的。

我使用 SoundPool 作为我的音效,所以我简单地使用了

mSoundManager.mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener(){
        @Override
        public void onLoadComplete(SoundPool arg0, int arg1, int arg2) {

            if(!firstSound){
                mSoundManager.playSound(1);
                System.out.println("FLASHCARD onLoadSound");
                firstSound=true;
            }
        }
    });

我有一个布尔 firstSound 的原因是产生的声音被发射了 3 次,所以我所做的是,如果发出声音,我将 firstSound 标记为真。

4

0 回答 0