Reproduce videos con LibGDX

22

¿Hay alguna forma de reproducir videos con LibGDX?

Quiero poner un video como pantalla de inicio en Android, pero no quiero usar el SDK de Android, porque estoy usando LibGDX y casi he terminado: /

Rudy_TM
fuente
Hay una extensión de representación de video multiplataforma LibGDX
tscissors

Respuestas:

12

Reproducir video con LibGDX se ha definido como fuera del alcance del proyecto. Entonces no , no puedes reproducir videos usando LibGDX.

Sin embargo, esto no excluye la posibilidad de escribir código específico para Android para reproducir videos. Simplemente significa que su aplicación no mantendrá la portabilidad de LibGDX.

MichaelHouse
fuente
:( ok gracias por esa respuesta: / Supongo que tengo que usar Android SDK, gracias :)
Rudy_TM
3
Lo hice con Android :) Creé una nueva Actividad y un nuevo Diseño, y cuando el video termina su reproducción, comienzo la actividad que tiene la llamada a libGDX
Rudy_TM
¡Agradable! Eso fue rápido, supongo que no fue demasiado difícil después de todo.
MichaelHouse
1
@Rudy_TM, agregue esto como la respuesta aceptada, que lo solucionó con una nueva Actividad. Eso ayudará a otros que tengan la misma pregunta más adelante.
cenizas999
Es bastante fácil escribir código específico de la plataforma en libgdx, por lo que el hecho de que no sea compatible con video de fábrica no significa que no se pueda hacer, como su respuesta implica.
Matsemann
20

Como dijo Byte56, en libGDX no puedes reproducir videos :( así que hice esto:

Creé una nueva actividad "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();
    }
}

En el método "onCompletion", uso la intención de llamar a mi nueva actividad donde la llamada "inicializar" para que funcione el motor libGDX

Y un nuevo diseño para el videoView

<?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>
Rudy_TM
fuente
2
+1 Gracias por publicar esta respuesta, será útil para futuros visitantes.
MichaelHouse
1
De nada :) Pasé dos días probando diferentes cosas XD y esta fue la última: P
Rudy_TM
2
Siempre es el último ¿verdad? Supongo que porque dejas de cuidar eso: p. ¡También felicidades por casi haber terminado!
MichaelHouse
@Rudy_TM libgdx.class me da un error (libgdx no se puede resolver a un tipo), ¿cómo solucionarlo?
LeSam
2
@ G3tinmybelly en su manifiesto cambie su pantalla de inicio a la actividad del iniciador en lugar de MainActivity,
Rudy_TM
-1

Esta es la forma de jugar: libname es "indiespot-media-0.8.09.jar" que puedes encontrar aquí .

Cómo utilizar:

  1. Descargar el zip completo
  2. Copie la carpeta lib en la raíz del proyecto (ffmpeg se abrirá con lib con la ruta ./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. utilizar playerTexturecomo textura habitual
vkatz
fuente