2013-11-26 48 views
1

我創建了一個簡單的android項目,它將顯示存儲在數組中的各種圖像並通過滑動圖像更改音頻。 這裏是我的代碼如何通過Android中的滑動圖像播放和更改音頻

package com.example.arab; 

       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.view.View; 
     import android.view.ViewGroup; 
     import android.widget.ImageView; 

     public class MainActivity extends Activity { 

      @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); 
      } 

      private class ImagePagerAdapter extends PagerAdapter { 

       private int[] mImages = new int[] {R.drawable.alif,R.drawable.baa,R.drawable.taa,R.drawable.saa,R.drawable.gim,R.drawable.haa, 
                R.drawable.kha,R.drawable.dal,R.drawable.zal,R.drawable.raa,R.drawable.jaa,R.drawable.seen, 
                R.drawable.shin,R.drawable.soad,R.drawable.duad,R.drawable.tua,R.drawable.jua,R.drawable.aiin, 
                R.drawable.guain,R.drawable.faa,R.drawable.kaff,R.drawable.kuff,R.drawable.lum,R.drawable.mim, 
                R.drawable.nun,R.drawable.wow,R.drawable.haasmall,R.drawable.hamza,R.drawable.eaa}; 


       private int[] mAudio= new int[]{R.raw.alif,R.raw.baa,R.raw.taa,R.raw.saa,R.raw.gim,R.raw.haa,R.raw.kha,R.raw.dal,R.raw.zal, 
               R.raw.raa,R.raw.jaa,R.raw.seen,R.raw.shin,R.raw.soad,R.raw.duad,R.raw.tua,R.raw.jua,R.raw.aiin, 
               R.raw.guain,R.raw.faa,R.raw.kaff,R.raw.kuff,R.raw.lum,R.raw.mim,R.raw.nun,R.raw.wow,R.raw.haa_small, 
               R.raw.hamza,R.raw.eaa}; 
       @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); 


    //for Sound 
    if (mp != null) { 
        mp.reset(); 
        mp.release(); 

       } 

//the audio files are running here but not in sync with image 
       mp = MediaPlayer.create(MainActivity.this,mAudio[position]); 
        mp.start(); 




    return imageView; 
      } 
       @Override 
       public void destroyItem(ViewGroup container, int position, Object object) { 
        ((ViewPager) container).removeView((ImageView) object); 
       } 
      } 
      } 

這裏的INT [] mAudio是我救我所有的音頻文件的陣列。現在我想播放聲音並根據int [] mImages數組中的圖像更改音頻。

回答

0

編輯

使用循環U可以改變你的音頻根據您的圖像調用你的畫面切換功能的

mp.setOnCompletionListener(new OnCompletionListener() { 
        public void onCompletion(MediaPlayer mp) { 
         mp.release(); //here you should call your picture changed function or event what ever you have for pictures} 

完成後。 例如,如果你的形象改變明顯的指數也將改變使用相同的索引你的音頻以及 這樣

for (int i=0;i<mImages .length;i++) 
mImages [i]; 
mp = MediaPlayer.create(FallAnimationActivity.this, 
         mAudio [i]); 
       mp.start(); 
+0

非常感謝你的回覆。 – user3034991

+0

我已添加音頻播放器,它播放音頻但它不與圖片同步。我應該怎麼辦? – user3034991

+0

打電話給你的畫面切換功能mp.setOnCompletionListener完成(新OnCompletionListener(){ \t \t \t \t \t公共無效onCompletion(MediaPlayer的MP){ \t \t \t \t \t \t mp.release後( ); 這裏你應該調用你的圖片改變事件 –

相關問題