Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android Developer] Afficher une vidéo

Erreur de lecture d'une vidéo

    1 février 2013 à 3:03:10

    Bonjour, je développe une application android dans le cadre de mes études et je rencontre un petit problème.

    Je souhaite ajouter une vidéo au début de mon application, en introduction. J'ai donc dans mon MainActivity.java écris ces quelques lignes de codes censées marcher.

    package fr.univmlv.lesduellistes;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.VideoView;
    
    public class MainActivity extends Activity{
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		final VideoView video = ((VideoView)this.findViewById(R.id.video_begin));
    		video.setVideoURI(Uri.parse("android.ressource://"+this.getPackageName()+"/"+R.raw.video_begin));
    		video.start();
    		
    		
    		Button skip = ((Button)findViewById(R.id.skip));
    		skip.setOnClickListener(new OnClickListener(){
    			public void onClick(View v){
    				video.stopPlayback();
    				startActivity(new Intent(getApplicationContext(), Start.class));
    			}
    		});
    		
    //		if(video.isPlaying() == false){
    //			video.stopPlayback();
    //			startActivity(new Intent(getApplicationContext(), Start.class));
    //		}
    		
    		Log.i("MainActivity.java", "onCreate"); // écris dans le LogCat pour debug
    	}

    Ce code est censé me charger ma vidéo à la création de l'activité, puis si l'on clique sur le bouton "skip" ou si la vidéo se termine on lance l'activité suivante.

    Erreur :

    L'erreur vient du setVideoUri(). En effet ma vidéo, intitulée "video_begin.avi" se situe dans le dossier <package_name>/res/raw/

    Ainsi un lien dans le R.java vers ma vidéo est créé. J'ai donc mis comme Uri :

    Uri.parse("android.ressource://"+this.getPackageName()+"/"+R.raw.video_begin)

    ce qui est "correct" d'après tous les tutos et pages web vues et lues.

    Or lorsque je lance mon application, j'ai l'alert :

     _________________________________

    | Lecture vidéo impossible             |

    | Cette vidéo ne peut pas être lue  |

    |_____________ OK _______________|

    Pour vérifier que les codecs et toutes les différences de compatibilités possibles de vidéos avec android ne soient pas la cause de l'erreur, j'ai copié la vidéo dans mon répertoire /sdcard/video_begin.avi de mon téléphone, et remplacer

    Uri.parse("android.ressource://"+this.getPackageName()+"/"+R.raw.video_begin)

    par

    Uri.parse("/sdcard/video_begin.avi")

    et là, comme par magie, la vidéo fonctionne parfaitement !!! (et est donc compatible avec mon device android)

    Voici le logCat de l'erreur si cela peut vous aider.

    avant l'appuie sur OK :

    02-01 02:49:52.723: I/MainActivity.java(16475): onCreate
    02-01 02:49:52.723: I/MainActivity.java(16475): onStart
    02-01 02:49:52.723: I/MainActivity.java(16475): onResume
    02-01 02:49:52.773: I/MediaPlayer(16475): path is null
    02-01 02:49:52.778: D/MediaPlayer(16475): Couldn't open file on client side, trying server side
    02-01 02:49:52.798: E/MediaPlayer(16475): error (1, -2147483648)
    02-01 02:49:52.808: I/MainActivity.java(16475): onCreateOptionsMenu
    02-01 02:49:52.808: E/MediaPlayer(16475): Error (1,-2147483648)
    02-01 02:49:52.808: D/VideoView(16475): Error: 1,-2147483648

    après l'appuie sur OK :

    02-01 02:49:58.963: I/MainActivity.java(16475): onPause
    02-01 02:49:59.223: W/SurfaceView(16475): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false
    02-01 02:49:59.558: I/MainActivity.java(16475): onStop
    02-01 02:49:59.558: I/MainActivity.java(16475): onDestroy

    Voilà, j'espère avoir été assez clair et précis dans mes explications.

    Je tiens à remercier tout ceux qui prendront le temps de lire ce message, et davantage ceux qui y répondront ^^

    -
    Edité par whytswag 1 février 2013 à 4:22:20

    • Partager sur Facebook
    • Partager sur Twitter

    [Android Developer] Afficher une vidéo

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown