Jump to content

Lancer une vidéo en plein ecran


tammikuu
 Share

Recommended Posts

bonjour, je souhaiterais lancer une vidéo en plein écran, or même en élargissant la videoview (parametres : fill_parent) la vidéo ne prend que la moitié de l'écran (non centré bien sur).


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.presentation);
VideoView view = (VideoView)findViewById(R.id.videoView);
view.setMediaController(new MediaController(this));
view.setVideoURI(Uri.parse("android.resource://"+this.getPackageName()+"/"+R.raw.presentation));
view.requestFocus();
view.start();

j'en profite également pour demander comment ajouter les ascenseurs sur un layout, car j'ai développé mon appli sans tenir compte de la rotation du smartphone et je viens de me rendre compte qu'en paysage la moitié des bouttons on diparus et impossible de descendre sur la vue ...

Edited by tammikuu
Link to comment
Share on other sites

j'ai essayé de rajouter :

[/size][/size][/size]
<VideoView android:layout_width="fill_parent" android:id="@+id/videoView"
android:layout_height="fill_parent" android:layout_alignParentRight="true"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_alignParentBottom="true">
</VideoView>

et

android:theme"@android:style/Theme.NoTitleBar.Fullscreen"

rien n'y fait

Edited by tammikuu
Link to comment
Share on other sites


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:background="@drawable/background"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<VideoView android:layout_width="fill_parent" android:id="@+id/videoView"
android:layout_height="fill_parent" android:layout_alignParentRight="true"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_alignParentBottom="true">
</VideoView>
</LinearLayout>

Link to comment
Share on other sites

Bonjour à vous.

J'ai trouvé une solution qui consiste à redéfinir le layout de la videoView.

Cela fonctionne très bien chez moi mais je ne sais pas si c'est très propre...

mVideoView.layout(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
mVideoView.layout.invalidate();

avec "SCREEN_WIDTH" et "SCREEN_HEIGHT" à remplacer par les valeurs appropriées.

Bien à vous.

Link to comment
Share on other sites

J'ai résolu le problème en supprimant le linear layout dans le xml, ne laissant que le video view


<?xml version="1.0" encoding="utf-8"?>
<VideoView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:id="@+id/videoView"
android:layout_height="fill_parent" android:layout_alignParentRight="true"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_alignParentBottom="true" android:layout_gravity="center">
</VideoView>

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour, concernant la video plein écran, le problème se situe dans le principe de fonctionnement même de la classe VideoView, en effet lorsque tu charges en mémoire le XML contenant genre :

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

Android va prendre comme référence les dimensions du layout parent. Jusqu'ici tout ce passe comme prévus.

Bémols, lorsque tu charges une vidéo en mémoire, la classe VideoView va procéder à un redimensionnement de la VideoView pour respecter le ratio d'image de la vidéo.

La seul solution que j'ai trouvé, c'est de télécharger la classe VideoView : http://grepcode.com/...id+videoView&n=

Et d'ensuite l'implémenter dans le projet pour ensuite modifier des morceaux de codes pour lancer une video avec les dimensions désirés.

Petit tuto rapide :

Téléchargez la classe VideoView et placer la dans un dossier que vous aurez créé dans le dossier src et on y mettra notre propre classe VideoView .

exemple : src/com/divers/VideoView.java

On modifie la classe VideoView (chercher la méthode OnMeasure qui permet de définir les dimensions ou sinon comme je l'ai fait, créer une méthode scale() avec un appel de layoutParams qui va modifier les dimensions de la VidéoView.

Puis, lorsque vous instancierez VideoView, prenez soin de rajouter le import com.divers.*; et non le import d'origine widget.videoview.

Enfin, dans votre xml, la déclaration videoview sera écrite comme ceci :

<com.divers.VideoView
android:id="@+id/video_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"/>

Conclusion, android, des fois, ça donne envie de frapper des gens... Je ne comprend toujours pas ce qui a pu motiver google à redimensionner les vidéo une fois chargée en mémoire plutôt que de laisser le choix au développeur via un passage de paramètre ou appel de méthode.

je dit ça, car déjà, c'est pénible de mettre en place la méthode que j'ai décrite, mais en plus, vu qu'on instancie une class de notre projet, notre apli n'exploite plus la dernière version de la class widget.VideoView.

Conclusion, cette solution marche très bien, mais elle amène aussi son lot de danger concernant M.A.J et compatibilité. Donc prudence.

Nietsabe

Edited by Nietsabe
Link to comment
Share on other sites

Mhn, pour une raison que j'ignore, lorsque je tentais une extends de VideoView, j'avais un crash inexpliqué de l'app, avec des messages dans les log complètements incompréhensible limite ésotérique...

Mais c'est tout à fait possible ce que tu dis Sylvain-a, faudrait que je re-test ultérieurement. Et quand ça marchera (si ça marche) je posterais sur le site la solution, car j'ai l’impression que pas mal de monde se pose la question.

Nietsabe

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...