0
我在這裏遇到麻煩,因爲我試圖在用戶執行圖像刷卡時播放聲音:沒有聲音正在播放。聲音沒有在圖像刷卡遊戲中播放
將OnPageChangeListener
附加到我的ViewPager
時,我收到了一個錯誤。另外,不使用OnPageListener
。
相關的錯誤代碼:
package com.android.viewpager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity {
public static MediaPlayer mp = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager)findViewById(R.id.view_pager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
viewPager.setOnPageChangeListener(mOnPageListener);
}
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[] {R.drawable.no1,R.drawable.no2,R.drawable.no3,R.drawable.no4,R.drawable.no5,R.drawable.no6,R.drawable.no7,R.drawable.no8,R.drawable.no9,};
private int[] mAudio= new int[]{R.raw.one,R.raw.two,R.raw.three,R.raw.four,R.raw.five,R.raw.six,R.raw.seven,R.raw.eight,R.raw.eight,R.raw.nine};
@Override
public int getCount() {
return mImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = MainActivity.this;
ImageView imageView = new ImageView(context);
int padding =context.getResources().
getDimensionPixelSize(R.dimen.activity_vertical_margin);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setImageResource(mImages[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}
public OnPageChangeListener mOnPageListener = new OnPageChangeListener() {
@Override public void onPageSelected(int position) {
//for Sound
if (mp != null) {
mp.reset();
mp.release();
}
mp = MediaPlayer.create(MainActivity.this, mAudio[position]);
mp.start();
}
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
@Override public void onPageScrollStateChanged(int state) {}
};
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
}
我真的陷入嚴重這裏。請告訴我錯誤在哪裏。
是的,如果我沒有使用OnPageChangeListener的聲音,然後聲音播放良好,但它不符合圖像。 –
你有沒有試過我的建議?嘗試在onPageSelected方法中放入一個日誌來查看它是否被調用。 – Andros
我試過了,但還是不行。這是否是這個問題的替代解決方案? –