65 votes

Lecture d'une vidéo dans VideoView sous Android

Je n'arrive pas à comprendre pourquoi je ne suis pas en mesure de lire la vidéo dans VideoView. Impossible de lire la vidéo: Désolé, cette vidéo ne peut pas être lue.

J'ai également créé une carte SD pour mon émulateur. Dois-je me placer la carte SD dans un dossier particulier de mon SDK? Commentez s'il vous plaît.

Voici la mise en page:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
   android:id="@+id/LinearLayout01"
   android:layout_height="fill_parent"     
   android:paddingLeft="2px"
   android:paddingRight="2px"
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:paddingTop="2px"
   android:paddingBottom="2px"
   android:layout_width="fill_parent"
   android:orientation="vertical">

      <VideoView 
         android:layout_height="fill_parent"
         android:layout_width="fill_parent" 
         android:id="@+id/VideoView" />

</LinearLayout>
 

Voici le code:

 package com.examples.videoviewdemo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class VideoViewDemo extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        VideoView videoView = (VideoView)findViewById(R.id.VideoView);
        //MediaController mediaController = new MediaController(this);
        // mediaController.setAnchorView(videoView);
        //videoView.setMediaController(mediaController);

        videoView.setVideoPath("/sdcard/blonde_secretary.3gp");

        videoView.start();  
    }
}
 

En attente de la réponse ...

36voto

CommonsWare Points 402670

Ma conjecture est que votre vidéo est incompatible avec Android. Essayez avec une autre vidéo. Ce un certainement œuvres utilisé pour le travail avec Android (mais pas sur les appareils récents, pour une raison quelconque). Si cette vidéo qui fonctionne, et le vôtre n'est pas le cas, votre vidéo n'est pas compatible avec Android.

Comme d'autres l'ont indiqué, merci de le tester sur un appareil. Lecture vidéo sur l'émulateur nécessite trop de puissance.

8voto

DJ7 Points 31

Faites de videoView une variable membre de votre classe d’activité au lieu de la conserver comme locale de la fonction onCreate :

 VideoView videoView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    videoView = (VideoView)findViewById(R.id.VideoView);        
    videoView.setVideoPath("/sdcard/blonde_secretary.3gp");
    videoView.start();  
}
 

5voto

VideoView peut uniquement diffuser des vidéos 3gp. Je recommande ce code pour diffuser votre vidéo ou essayer une version supérieure d'Android. Essayez la vidéo en ligne en streaming.

 public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}
 

Ou Cliquez ici pour regarder le didacticiel de streaming vidéo Android .

2voto

poeschlorn Points 2531

Vous pouvez accéder à votre carte SD via le DDMS

2voto

Igor Points 131

Le code semble être sans faille! Simple et simple.
Donc, cela devrait fonctionner au téléphone. L'émulateur a du mal à lire des vidéos, ça m'est arrivé aussi.

Essayez d'augmenter le niveau requis de l'API au plus tard, cela pourrait aider!

Faites un clic droit sur le projet ouvert, choisissez Propriétés> Android> vérifier la dernière version à droite ...

Igor

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X