2013-11-26 1 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); 
       } 
      } 
      } 

здесь ИНТ [] M-Audio является массивом, в котором я сохранил все мои аудио файлов. теперь я хочу воспроизводить звук и изменять звук в соответствии с изображениями в массиве int [] mImages.

ответ

0

EDIT

называют ваше изменение изображения функции после завершения

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 тр) { \t \t \t \t \t \t mp.release (); здесь вы должны назвать свое событие измененным изображением –

Смежные вопросы