how to play sound on viewpager swipe

时间:2017-08-05 12:30:32

标签: android android-viewpager

I have created a simple android project which will display various images but the problem is that I can't figure out how to add sound on every image with swipe. I have made a separate pager adapter class for my project.

viewpagerAdapter.java

    import android.app.Activity;
    import android.content.Context;
    import android.media.MediaPlayer;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.util.DisplayMetrics;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.LinearLayout;

    public class ViewPagerAdapter extends PagerAdapter {
        MediaPlayer mp;
        Activity activity;
        int[] images;
        int[] audio;
        LayoutInflater inflater;

        public ViewPagerAdapter(Activity activity, int[] images,int[] audio){
            this.activity=activity;
            this.images=images;
            this.audio=audio;
        }

        @Override
        public int getCount() {
            return images.length;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, final int position) {
            inflater=

       (LayoutInflater)activity.getApplicationContext().
       getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View itemView = 
       inflater.inflate(R.layout.pager_list,container,false);

        final ImageView image;
        image = (ImageView)itemView.findViewById(R.id.image_view);
        image.setImageResource(images [position]);
        image.setScaleType(ImageView.ScaleType.FIT_XY);
        container.addView(itemView);
        return itemView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }
}

and this is my activity class

    import android.media.MediaPlayer;
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.WindowManager;

    public class Alphabet extends AppCompatActivity {
        MediaPlayer mp;

        ViewPager viewPager;
        ViewPagerAdapter adapter;
        public int[] images = {R.drawable.a, R.drawable.b, R.drawable.c, 
       R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g,
            R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k, 
     R.drawable.l, R.drawable.m, R.drawable.n, R.drawable.o,
            R.drawable.p, R.drawable.q, R.drawable.r, R.drawable.s, 
     R.drawable.t, R.drawable.u, R.drawable.v, R.drawable.w,
            R.drawable.x, R.drawable.y, R.drawable.z};
        public int[] audio = {R.raw.a, R.raw.b, R.raw.c, R.raw.d};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.swipe);

        viewPager = (ViewPager) findViewById(R.id.view_pager);
        adapter = new ViewPagerAdapter(this, images, audio);

        viewPager.setAdapter(adapter);

    }
}

in which part should i make changes.

1 个答案:

答案 0 :(得分:0)

您可以使用ViewPager.OnPageChangeListener收听滑动事件并播放音频。

https://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html