Reproduzir vídeos com LibGDX


22

Existe uma maneira de reproduzir vídeos com LibGDX?

Quero colocar um vídeo como minha tela inicial no Android, mas não quero usar o SDK do Android, porque estou usando o LibGDX e estou quase terminando: /


Existe uma extensão de renderização de vídeo em várias plataformas LibGDX
— tscissors

Respostas:


12

A reprodução de vídeo com LibGDX foi definida como fora do escopo do projeto. Portanto , não , você não pode reproduzir vídeos usando o LibGDX.

Isso não exclui a possibilidade de escrever código específico para o Android para reproduzir vídeos. Significa apenas que seu aplicativo não manterá a portabilidade do LibGDX.


:( ok obrigado por essa resposta: / I supor que eu tenho que usar SDK Android, graças :)
— Rudy_TM

3
Eu fiz isso com Android :) Eu criei uma nova atividade e um novo layout, e quando o vídeo termina a sua reprodução, eu começo a atividade que tem a chamada para libGDX
— Rudy_TM

Agradável! Foi rápido, acho que não foi tão difícil de fazer, afinal.
— MichaelHouse

1
@Rudy_TM, adicione-o como resposta aceita - para contornar isso com uma nova atividade. Isso ajudará outras pessoas que têm a mesma pergunta posteriormente.
— ashes999

É muito fácil escrever código específico da plataforma no libgdx, apenas porque não suporta vídeo pronto para uso não significa que não pode ser feito, como sua resposta implica.
— Matsemann

20

Como disse Byte56, no libGDX você não pode reproduzir vídeos :( então eu fiz isso:

Criei uma nova atividade "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();
    }
}

No método "onCompletion", uso a intenção de chamar minha nova atividade, na qual "inicialize" solicita que o mecanismo libGDX funcione

E um novo layout para o 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>

2
+1 Obrigado por postar esta resposta, será útil para futuros visitantes.
— MichaelHouse

1
De nada :) Passei dois dias tentando coisas diferentes XD e este foi o último: P
— Rudy_TM

2
É sempre o último, certo? Eu acho que porque você para de cuidar disso: p. Também parabéns por estar quase pronto!
— MichaelHouse

O @Rudy_TM libgdx.class me deu um erro (a libgdx não pode ser resolvida para um tipo), como corrigi-lo?
— LeSam

2
@ G3tinmybelly em sua mudança manifesta a sua tela inicial com a atividade lançador em vez do MainActivity,
— Rudy_TM

-1

Esta é a maneira de jogar: libname é "indiespot-media-0.8.09.jar", que você pode obter aqui .

Como usar:

  1. Baixar zip completo
  2. Copie a pasta lib na raiz do projeto (ffmpeg será aberto pela lib com o caminho ./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. use playerTexturecomo textura usual
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.