2010-07-01 2 views
1

Je travaille sur Android (avec Eclipse et SDK) en essayant de diffuser de la vidéo dans un VideoView. Parfois, la vidéo fonctionne, mais d'autres fois je reçois une erreur que la vidéo ne peut pas être affichée. Voici le code:Vidéo ne s'affiche pas correctement

//video 

    private Uri mPath; 

private VideoView mVid; 

    mPath = Uri.parse("android.resource://com.accuweather.wordweather/" + R.raw.b2); 

    mVid.setVideoURI(mPath); 

    mVid.requestFocus(); 

    mVid.start(); 

Et une autre classe qui charge différentes vidéos lorsqu'un utilisateur fait défiler l'écran.

public void onScrollViewSnap(int page) { 
    //change video 
    Log.d(DEB_TAG, "In 'onPageCountChange: '." + page); 
    //video 

    if(page != mOnPage){ 
     if(page == 0){ 
      mPath = Uri.parse("http://www.ted.com/talks/download/video/8584/talk/761"); 
      //mPath = Uri.parse("android.resource://com.accuweather.wordweather/" + R.raw.w2); 
     }else if(page == 1){ 
      mPath = Uri.parse("android.resource://com.accuweather.wordweather/" + R.raw.b1); 
     }else if(page == 2){ 
      mPath = Uri.parse("http://commonsware.com/misc/test2.3gp"); 
      //mPath = Uri.parse("android.resource://com.accuweather.wordweather/" + R.raw.test2); 
     } 
     if(mVid.isPlaying() == true){ 
      mVid.stopPlayback(); 
     } 
     mVid.setVideoURI(mPath); 
     mVid.requestFocus(); 
     mVid.start(); 
     Log.d(DEB_TAG, "THIS IS THE HEIGHT: " + mVid.getMeasuredHeight()); 
     Log.d(DEB_TAG, "THIS IS THE WIDTH: " + mVid.getMeasuredWidth()); 
    } 

    ImageView temp = null; 

    switch(page){ 
    case 0: 
     temp = (ImageView) findViewById(R.id.scroll_page_1); 
     mOnPage = 0; 
     break; 
    case 1: 
     temp = (ImageView) findViewById(R.id.scroll_page_2); 
     mOnPage = 1; 
     break; 
    case 2: 
     temp = (ImageView) findViewById(R.id.scroll_page_3); 
     mOnPage = 2; 
     break; 
    } 

    // Change pagination image 
    mPageSelected.setImageResource(R.drawable.scrollview_page_off); 
    temp.setImageResource(R.drawable.scrollview_page_on); 
    mPageSelected = temp; 

} 

Tout d'abord, ne chargeant ma vidéo ainsi assurez-vous qu'il sera affiché aussi bien sur chaque appareil différent?
Deuxièmement, une idée pourquoi une vidéo va commencer à jouer, puis lancer une erreur de vidéo ne peut pas jouer? Voici ce que j'obtiens dans LogCat lorsque la vidéo démarre mais se bloque.

07-01 13:27:05.594: WARN/PlayerDriver(30): Using generic video MIO 
07-01 13:27:22.324: WARN/PlayerDriver(30): Video track fell behind 
07-01 13:27:22.324: ERROR/MediaPlayer(409): error (1, 48) 
07-01 13:27:22.324: ERROR/MediaPlayer(409): Error (1,48) 
07-01 13:27:22.324: DEBUG/VideoView(409): Error: 1,48 

Répondre

0

la lecture de la vidéo sur l'émulateur est pas très stable. Vous devriez tester et développer sur au moins un appareil réel si vous travaillez beaucoup avec la vidéo. C'est un problème commun.

+0

Merci! Cela fonctionne sur un périphérique réel. – taraloca