2013-03-19 1 views
0

J'ai ajouté le code suivant à mon application pour ajouter une vue vidéo qui est liée à une vidéo dans mon dossier brut, mais je reçois une erreur sur VideoView en disant que VideoView cannot be resolved or is not a field J'ai inclus tous les pertinents imports.Est-ce une erreur quelque part dans ma syntaxe?Mise en place d'une vue vidéo

VideoView StudentLife = (VideoView) findViewById(R.id.VideoView); 

     Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi); 

     videoview.setVideoURI(uri); 
     videoview.start(); 

Ma mise en page XML pour VideoView est la suivante:

<VideoView 
     android:id="@+id/videoView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView2" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="53dp" /> 
+0

est-ce une erreur de compilation lors de l'exécution? pouvez-vous montrer le fichier de mise en page xml? –

+0

Il s'agit d'une erreur de compilation. J'ai simplement ajouté la mise en page XML. –

+0

vérifier ma réponse .. –

Répondre

4

Vous nom de la variable est StudentLife

VideoView StudentLife = (VideoView) findViewById(R.id.VideoView); 

et vous appelons d'autres meht od est sur videoview qui est variable non définie ..

donc le code suivant:

 videoview.setVideoURI(uri); 
     videoview.start(); 

devraient être:

 StudentLife.setVideoURI(uri); 
     StudentLife.start(); 

EDIT1:

Selon vous Xml la ligne pour obtenir l'instance de la vue vidéo devrait être suivi

VideoView StudentLife = (VideoView) findViewById(R.id.videoView1); 

Code de travail complet doit être comme suit:

VideoView StudentLife = (VideoView) findViewById(R.id.videoView1); 
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi); 
StudentLife.setVideoURI(uri); 
StudentLife.start(); 

Du côté non; vous ne devriez pas utiliser le nom de la classe comme nom de la variable ... aussi dans java le premier caractère de la variable ne devrait pas être capital ... Alors, laissez 'videoView' comme nom de la variable. type de nom de variable ..

VideoView videoView = (VideoView) findViewById(R.id.videoView1); 
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi); 
videoView.setVideoURI(uri); 
videoView.start(); 
+0

Ok en réalité le nom myclass est StudentLife.Est-ce toujours la bonne définition ou devrais-je créer une variable? Merci –

+0

vous devriez créer une variable avec un autre nom .. 'viewView' pourrait être utilisé à la place de' StudentLife' dans le code que j'ai posté dans la réponse .... –

+0

Merci beaucoup, je viens de réaliser l'erreur que je faisais avec le R.id. –

0

Mon code fonctionne ::

mc = new MediaController(this); 
vd.setMediaController(mc); 
vd.setVideoURI(intentUri); 
vd.start(); 
setContentView(vd); 
1

L'identifiant de votre VideoView est videoView1. Donc, vous devriez obtenir une référence à l'objet VideoView de la hiérarchie de vue à l'aide R.id.videoView1:

VideoView StudentLife = (VideoView) findViewById(R.id.videoView1); 
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi); 
StudentLife.setVideoURI(uri); 
StudentLife.start(); 
0

En fait, lorsque vous utilisez ce code,

Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.learningatgmi); 
StudentLife.setVideoURI(uri); 

Il passe URI comme nul il vous indique l'erreur Ainsi, Au lieu de cela, vous ne pouvez pas utiliser le code suivant. Au lieu d'analyser l'URI avant le réglage, il vaudrait mieux que vous le transmettiez lors du réglage.

+0

Si 'uri' est nul ** comme vous l'avez dit **, alors' Uri.parse() 'renvoie null. Ce sera 'StudentLife.setVideoURI (null) 'dans le second cas également. – Nizam

+0

J'ai eu le même problème plus tôt, quand je l'ai débogué, je suis venu à savoir qu'il rentrait null, alors j'ai essayé le code qui vous a été donné, cela a fonctionné pour moi. – Rohit