LibGDX ile video oynatın


22

LibGDX ile video oynatmanın bir yolu var mı?

Android'de açılış ekranım olarak bir video koymak istiyorum, ancak Android SDK'yı kullanmak istemiyorum çünkü LibGDX kullanıyorum ve neredeyse bitirdim: /


Bir LibGDX çapraz platform video oluşturma uzantısı var: github.com/libgdx/gdx-video
tscissors

Yanıtlar:


12

LibGDX ile video oynatmak proje için kapsam dışı olarak tanımlanmıştır . Yani hayır , LibGDX kullanarak video oynatamazsınız.

Bu olsa da, videoları oynatmak için Android'e özgü kod yazma olasılığını engellemez. Bu sadece uygulamanızın LibGDX'in taşınabilirliğini korumayacağı anlamına geliyor.


:( Tamam bu cevap için teşekkürler: / Sanırım Android SDK kullanmam gerekiyor, teşekkürler :)
Rudy_TM 14:01

3
Android ile yaptım :) Yeni bir Etkinlik ve yeni bir Düzen oluşturdum ve video oynatmayı tamamladığında libGDX'e çağrı yapan etkinliği başlattım
Rudy_TM

Güzel! Bu hızlıydı, sonuçta yapmak zor değildi sanırım.
MichaelHouse

1
@Rudy_TM lütfen bunu kabul edilen cevap olarak ekleyiniz - yeni bir Aktivite ile dolaştığınızı. Bu daha sonra aynı soruyu olan başkalarına yardımcı olacaktır.
ashes999

Libgdx'te platforma özel bir kod yazmak oldukça kolaydır, bu yüzden sadece kutudan çıkan videoyu desteklememesi, cevabınızın da belirttiği gibi yapılamayacağı anlamına gelmez.
Matsemann,

20

Byte56’nin dediği gibi, libGDX’te video oynatamazsınız :( bu yüzden şunu yaptım:

Yeni bir "SplashScreen" etkinliği oluşturdum

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

"OnCompletion" yönteminde, libGDX motorunun çalışması için "başlatma" çağrısının olduğu yeni etkinliğimi arama niyetini kullanıyorum

Ve videoView için yeni bir düzen

<?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 Bu cevabı gönderdiğiniz için teşekkür ederiz, gelecekteki ziyaretçilere yardımcı olacaktır.
MichaelHouse

1
Bir şey değil :) Ben iki gün geçirdim XD farklı şeyler
denedim

2
Her zaman sonuncudur, değil mi? Sanırım çünkü ona bakmayı bıraktın: s. Ayrıca neredeyse yapıldığı için tebrikler!
MichaelHouse

@Rudy_TM libgdx.class bana bir hata verdi (libgdx bir türe çözümlenemiyor), nasıl düzeltilir?
LeSam

2
Açıkça görünen @ G3tinmybelly, açılış ekranınızı MainActivity yerine başlatıcı aktivitesine değiştirin,
Rudy_TM

-1

Bu oynamak için yoludur: kütüphane-adı alabilirsiniz "indiespot medya-0.8.09.jar" dır burada .

Nasıl kullanılır:

  1. Tam zip indir
  2. Projenin kökündeki lib klasörünü kopyala (ffmpeg, lib. Tarafından lib.ff/ffmpeg/ffmpeg@os postfix @ yolu ile açılacaktır)
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. Kullanım playerTexturezamanki doku olarak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.