Spielen Sie Videos mit LibGDX ab

22

Gibt es eine Möglichkeit, Videos mit LibGDX abzuspielen?

Ich möchte ein Video als Begrüßungsbildschirm in Android einfügen, aber ich möchte das Android SDK nicht verwenden, da ich LibGDX verwende und fast fertig bin: /

Rudy_TM
quelle
Es gibt eine plattformübergreifende Video-Renderingerweiterung für
LibGDX

Antworten:

12

Das Abspielen von Videos mit LibGDX wurde für das Projekt als nicht zulässig definiert . Also nein , können Sie keine Videos mit Libgdx spielen.

Dies schließt jedoch nicht die Möglichkeit aus, Android-spezifischen Code zum Abspielen von Videos zu schreiben. Es bedeutet nur, dass Ihre Anwendung die Portabilität von LibGDX nicht aufrechterhält.

MichaelHouse
quelle
:( ok danke für diese Antwort: / Ich nehme an, dass ich Android SDK verwenden muss, danke :)
Rudy_TM
3
Ich habe es mit Android gemacht :) Ich habe eine neue Aktivität und ein neues Layout erstellt. Wenn das Video die Wiedergabe beendet hat,
starte
Nett! Das war schnell, ich denke, es war nicht allzu schwer, es zu tun.
MichaelHouse
1
@Rudy_TM Bitte fügen Sie dies als akzeptierte Antwort hinzu - dass Sie es mit einer neuen Aktivität umgangen haben. Das hilft anderen, die später die gleiche Frage haben.
Asche999
Es ist ziemlich einfach, plattformspezifischen Code in libgdx zu schreiben. Nur weil es kein sofort einsatzbereites Video unterstützt, heißt das noch lange nicht, dass dies nicht möglich ist, wie Ihre Antwort impliziert.
Matsemann
20

Wie Byte56 sagte, kann man in libGDX keine Videos abspielen :( also habe ich das gemacht:

Ich habe eine neue Aktivität "SplashScreen" erstellt

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();
    }
}

Bei der Methode "onCompletion" verwende ich die Absicht, meine neue Aktivität aufzurufen, bei der der Aufruf "initialize" für die Funktionsfähigkeit der libGDX-Engine erfolgt

Und ein neues Layout für das 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
quelle
2
+1 Vielen Dank, dass Sie diese Antwort gepostet haben. Sie ist für zukünftige Besucher hilfreich.
MichaelHouse
1
Gern geschehen
2
Es ist immer der letzte, oder? Ich denke, weil Sie aufhören, danach zu suchen: p. Auch herzlichen Glückwunsch zu fast geschafft!
MichaelHouse
@Rudy_TM libgdx.class Gib mir einen Fehler (libgdx kann nicht in einen Typ aufgelöst werden), wie kann ich das beheben?
LeSam
2
@ G3tinmybelly in Ihrem Manifest ändern Sie Ihren Begrüßungsbildschirm auf die Launcher-Aktivität anstelle der MainActivity,
Rudy_TM
-1

Dies ist der Weg zu spielen: libname ist "indiespot-media-0.8.09.jar", den Sie hier bekommen können .

Wie benutzt man:

  1. Komplette Zip herunterladen
  2. Kopieren Sie den lib-Ordner in das Stammverzeichnis des Projekts (ffmpeg wird von lib mit dem Pfad ./lib/ffmpeg/ffmpeg@os postfix @ geöffnet).
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. Verwenden Sie playerTexturewie gewohnt Textur
vkatz
quelle