2

したがって、基本的には、ビューページャーに最初のビューが読み込まれるときに、効果音を開始したいと考えています。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 に true のフラグを立てました。

4

0 に答える 0