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