2014-10-29 4 views
0

я отображение изображений и видео в ImageView и VideoView но вопрос когда видео играя onpreparedlistener называется, но когда видео отделка oncompletion слушателя не называется , когда VideoView полного я увеличиваю I для следующего видео или изображенийvideoview oncompletionlistener не называется в android?

также его дает мне ошибку в LogCat, как это, но видео играет

10-29 20: 12: 47,770: E/MediaPlayer (3975): ошибка (1, -2147483648)

private void nextVideo(String path){ 

     mImageview.setVisibility(View.GONE); 


    if(mVideoview.getVisibility()==View.GONE){ 
     mVideoview.setVisibility(View.VISIBLE); 

    } 

    controller = new MediaController(HomeActivityNewViewPager.this); 
    mVideoview.setVideoURI(Uri.parse(path)); 
    mVideoview.setMediaController(null); 
    controller.setMediaPlayer(mVideoview); 

    mVideoview.setOnPreparedListener(new OnPreparedListener() { 

     public void onPrepared(MediaPlayer mp) { 

        mVideoview.start(); 
        long duration = mVideoview.getDuration(); 
        second=duration; 
        //handler.removeCallbacks(runnable); 
        //handler.postDelayed(runnable,second); 

     } 
    }); 


    mVideoview.setOnCompletionListener(new OnCompletionListener() { 

     @Override 
     public void onCompletion(MediaPlayer mp) { 

       Log.v("video view completed","---"+i); 

       mp.reset(); 

       if(automode){ 

        if(i==myplaylistlocal.size() || i>myplaylistlocal.size()) 
        { 

         String checkcount=spreferences.getString("roundcount", ""); 
         Log.v("roundcount==Before Integer.parseInt","---->"+roundcount); 
         if(roundcount>=Integer.parseInt(checkcount)) 
         { 
          roundcount=0; 
          Log.v("roundcount==After Integer.parseInt","---->"+roundcount); 
          updateplaylist(); 
         } 

         i=0;             
         indexplus(); 
         imagesautomode(); 
         i++; 

        } 
        else if(i==myplaylistlocal.size()-1) 
        { 
         imagesautomode(); 
         i++; 
        } 
        else{ 
         imagesautomode(); 
        } 

       } 
       else{ 
        i++; 
        images(); 
       } 



     } 
    }); 

    mVideoview.setOnErrorListener(new OnErrorListener() { 

     @Override 
     public boolean onError(MediaPlayer mp, int what, int extra) { 

      Log.v("Error in video playing","----->"+i); 

      return true; 
     } 

    }); 

} 
+0

Вы получаете любые ошибки назад от видеоплеера? Некоторые коды могут быть неправильным форматом и т. Д. Я заметил, что некоторые видеоролики закодированы неправильно и заканчиваются до того, как видеоплеер понял, что они закончили. –

+0

10-29 20: 12: 47.770: E/MediaPlayer (3975): ошибка (1, -2147483648) это отображение в logcat, но все же onerrorlistner не вызвал – Mahesh

ответ

0

В любом случае ошибка, упомянутая выше, MEDIA_ERROR_UNKNOWN. Если это видео было сделано для этого приложения, я бы удостоверился, что он правильно закодирован для Android. Также убедитесь, что он четко определяет конечную точку.

http://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_ERROR_UNKNOWN

это работа вокруг, но может possbly работать в вашей ситуации:

@Override 
public boolean onError(MediaPlayer mp, int what, int extra) { 
    if(what == MediaPlayer.MEDIA_ERROR_UNKNOWN) 
     //ERROR UNKNOWN - COULD BE IMPROPERLY FORMATTED VIDEO { 
     //MOVE ON TO NEXT VIDEO 
     //DO LOGGING 
    } 
} 
+0

, не получая вас, так что это зависит от видео? – Mahesh

+0

Правильно, я столкнулся с ситуацией, когда пользовательские видео имеют неправильные конечные теги, а медиа-плеер не знает, как их закончить. Используется ли видео, которое вы пытаетесь использовать для пользовательского видео? –

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