所以基本上,当第一个视图加载到我的 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 标记为真。