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: /

Rudy_TM
fonte
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.

MichaelHouse
fonte
:( 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>
Rudy_TM
fonte
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
vkatz
fonte