Android 如何在翻页时播放简短的声音?

Android 如何在翻页时播放简短的声音?,android,android-viewpager,android-mediaplayer,fragmentpageradapter,Android,Android Viewpager,Android Mediaplayer,Fragmentpageradapter,我的ViewPager有问题,无法在此网站或通过谷歌搜索找到答案。如何在浏览页面时播放简短的声音如何更改代码,我想添加mediaplayer/播放声音。(原始文件夹中的声音)谢谢 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyPagerAdapter adapt

我的ViewPager有问题,无法在此网站或通过谷歌搜索找到答案。
如何在浏览页面时播放简短的声音
如何更改代码,我想添加mediaplayer/播放声音。(原始文件夹中的声音)
谢谢

@Override
public void onCreate(Bundle savedInstanceState) {    
super.onCreate(savedInstanceState);    
setContentView(R.layout.main);     
MyPagerAdapter adapter = new MyPagerAdapter();   
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);    
myPager.setAdapter(adapter);    
myPager.setCurrentItem(2);
}



private class MyPagerAdapter extends PagerAdapter { 

        public int getCount() { 
                return 5; 
        } 

        public Object instantiateItem(View collection, int position) { 

                LayoutInflater inflater = (LayoutInflater) collection.getContext() 
                                .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

                int resId = 0; 
                switch (position) { 
                case 0: 
                        resId = R.layout.farleft; 
                        break; 
                case 1: 
                        resId = R.layout.left; 
                        break; 
                case 2: 
                        resId = R.layout.middle; 
                        break; 
                case 3: 
                        resId = R.layout.right; 
                        break; 
                case 4: 
                        resId = R.layout.farright; 
                        break; 
                } 

                View view = inflater.inflate(resId, null); 

                ((ViewPager) collection).addView(view, 0); 

                return view; 
        } 
        @Override 
        public void destroyItem(View arg0, int arg1, Object arg2) { 
                ((ViewPager) arg0).removeView((View) arg2); 
         } 

        @Override 
        public boolean isViewFromObject(View arg0, Object arg1) { 
                return arg0 == ((View) arg1); 
         } 

        @Override 
        public Parcelable saveState() { 
                // TODO Auto-generated method stub 
                return null; 
        } 
使用。它是专门为播放短声音而设计的(特别是在游戏、多媒体应用程序中)

这里有一个教程-

使用。它是专门为播放短声音而设计的(特别是在游戏、多媒体应用程序中)

以下是一个教程-

示例:

private static final int rId = R.raw.sound;
private int sid=-1;
private boolean loaded = false;
SoundPool soundPool;

private SoundPool.OnLoadCompleteListener listener = 
new SoundPool.OnLoadCompleteListener(){
@Override
public void onLoadComplete(SoundPool soundPool, int sid, int status){ // could check status value here also
  if (this.sid == sid) {
    this.loaded = true;
  }
}
};


public void initSound() {
  soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 100);
  soundPool.setOnLoadCompleteListener(listener);
  this.sid = soundPool.load(getApplicationContext(), rId, 1); 
}

public void SoundPlay() {
  new Thread(new Runnable() {
    @Override
    public void run() {
      if (loaded) {
      soundPool.play(this.sid, 1.0, 1.0, 1, 0, 1f);     
        }
  }).start();
}
因此,您将添加一个构造函数,如:

MyPagerAdapter() {
  initSound();
}
并使用SoundPlay()在InstanceItem()中每次播放

我没有按原样测试上述代码,但在我自己的东西中使用了类似的代码。

示例:

private static final int rId = R.raw.sound;
private int sid=-1;
private boolean loaded = false;
SoundPool soundPool;

private SoundPool.OnLoadCompleteListener listener = 
new SoundPool.OnLoadCompleteListener(){
@Override
public void onLoadComplete(SoundPool soundPool, int sid, int status){ // could check status value here also
  if (this.sid == sid) {
    this.loaded = true;
  }
}
};


public void initSound() {
  soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 100);
  soundPool.setOnLoadCompleteListener(listener);
  this.sid = soundPool.load(getApplicationContext(), rId, 1); 
}

public void SoundPlay() {
  new Thread(new Runnable() {
    @Override
    public void run() {
      if (loaded) {
      soundPool.play(this.sid, 1.0, 1.0, 1, 0, 1f);     
        }
  }).start();
}
因此,您将添加一个构造函数,如:

MyPagerAdapter() {
  initSound();
}
并使用SoundPlay()在InstanceItem()中每次播放

我没有按原样测试上述代码,但在我自己的东西中使用了类似的代码