Lire des vidéos avec LibGDX


22

Existe-t-il un moyen de lire des vidéos avec LibGDX?

Je veux mettre une vidéo comme écran de démarrage dans Android, mais je ne veux pas utiliser le SDK Android, car j'utilise LibGDX et j'ai presque fini: /


Il existe une extension de rendu vidéo multiplateforme LibGDX
tscissors

Réponses:


12

La lecture de vidéo avec LibGDX a été définie comme étant hors de portée du projet. Donc non , vous ne pouvez pas lire de vidéos avec LibGDX.

Cela n'empêche pas la possibilité d'écrire du code spécifique à Android pour lire des vidéos. Cela signifie simplement que votre application ne maintiendra pas la portabilité de LibGDX.


:( ok merci pour cette réponse: / Je suppose que je dois utiliser le SDK Android, merci :)
Rudy_TM

3
Je l'ai fait avec Android :) J'ai créé une nouvelle activité et une nouvelle mise en page, et lorsque la vidéo termine sa lecture, je démarre l'activité qui a appelé libGDX
Rudy_TM

Agréable! C'était rapide, je suppose que ce n'était pas trop difficile à faire après tout.
MichaelHouse

1
@Rudy_TM veuillez ajouter ceci comme réponse acceptée - que vous l'avez contourné avec une nouvelle activité. Cela aidera d'autres personnes qui auront la même question plus tard.
ashes999

Il est assez facile d'écrire du code spécifique à la plate-forme dans libgdx, donc ce n'est pas parce qu'il ne prend pas en charge la vidéo prête à l'emploi, comme votre réponse l'indique.
Matsemann

20

Comme l'a dit Byte56, dans libGDX, vous ne pouvez pas lire de vidéos :( j'ai donc fait ceci:

J'ai créé une nouvelle activité "SplashScreen"

public class SplashScreen extends Activity implements OnCompletionListener
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.splash);
        String fileName = "android.resource://"+  getPackageName() +"/raw/video";

         VideoView vv = (VideoView) this.findViewById(R.id.surface);
         vv.setVideoURI(Uri.parse(fileName));
         vv.setOnCompletionListener(this);
         vv.start();

    }

    @Override
    public void onCompletion(MediaPlayer mp) 
    {
        // TODO Auto-generated method stub
        Intent intent = new Intent(this, libgdx.class);
        startActivity(intent);      
        finish();
    }
}

Dans la méthode "onCompletion", j'utilise l'intention d'appeler ma nouvelle activité où l'appel "initialize" pour que le moteur libGDX fonctionne

Et une nouvelle mise en page pour la vidéo

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

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

    </VideoView>

</LinearLayout>

2
+1 Merci d'avoir posté cette réponse, elle sera utile aux futurs visiteurs.
MichaelHouse

1
Vous êtes les bienvenus :) J'ai passé deux jours à essayer différentes choses XD et ce fut le dernier: P
Rudy_TM

2
C'est toujours le dernier non? Je suppose que parce que vous cessez de vous en occuper: p. Félicitations également pour avoir presque terminé!
MichaelHouse

@Rudy_TM libgdx.class me donne une erreur (libgdx ne peut pas être résolu en un type), comment y remédier?
LeSam

2
@ G3tinmybelly dans votre manifeste, changez votre écran de démarrage en activité de lancement au lieu de MainActivity,
Rudy_TM

-1

Voici comment jouer: libname est "indiespot-media-0.8.09.jar" que vous pouvez obtenir ici .

Comment utiliser:

  1. Télécharger le zip complet
  2. Copier le dossier lib à la racine du projet (ffmpeg sera ouvert par lib avec le chemin ./lib/ffmpeg/ffmpeg@os postfix @)
player = new MoviePlayer(videoFile);
Texure playerTexture = new Texture(
  player.movie.width(), 
  player.movie.height(), 
  Pixmap.Format.RGBA8888) {

  @Override
  public void bind() {
    Gdx.gl.glBindTexture(0, player.textureHandle);
  }
};
  1. utiliser playerTexturecomme texture habituelle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.