Відтворюйте відео з LibGDX


22

Чи є спосіб відтворити відео з LibGDX?

Я хочу розмістити відео як мій екран заставки в Android, але я не хочу використовувати Android SDK, тому що я використовую LibGDX, і я майже закінчив: /


Існує розширення для візуалізації міжплатформенної відеозйомки LibGDX
tscissors

Відповіді:


12

Відтворення відео з LibGDX було визначено як поза межами проекту. Так що ні , ви не можете відтворювати відео за допомогою LibGDX.

Це не виключає можливості написання коду, характерного для Android, для відтворення відео. Це просто означає, що ваша програма не підтримує портативність LibGDX.


:( нормально дякую за цю відповідь: / Я вважаю, що мені потрібно використовувати Android SDK, дякую :)
Rudy_TM

3
Я зробив це з Android :) Я створив нову активність та новий макет, і коли відео закінчує його відтворення, я розпочинаю діяльність, яка має виклик libGDX
Rudy_TM

Приємно! Це було швидко, я думаю, це було не надто важко зробити зрештою.
MichaelHouse

1
@Rudy_TM, будь ласка, додайте це як прийняту відповідь - що ви обійшли його новою активністю. Це допоможе іншим, у кого це питання пізніше.
ashes999

Написати специфічний код платформи у libgdx досить просто, тому що лише тому, що він не підтримує відео з вікна, це не означає, що його неможливо зробити, як випливає з вашої відповіді.
Matsemann

20

Як сказав Byte56, в libGDX ви не можете відтворювати відео :( так я зробив це:

Я створив нову діяльність "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();
    }
}

У методі "onCompletion" я використовую наміри викликати свою нову діяльність, коли виклик "ініціалізувати" для роботи двигуна libGDX

І новий макет для 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 Дякуємо, що опублікували цю відповідь, це буде корисно майбутнім відвідувачам.
MichaelHouse

1
Запрошуємо вас :) Я два дні пробував різні речі XD, і це був останній: P
Rudy_TM

2
Це завжди останній правда? Я здогадуюсь тому, що ти перестаєш доглядати за цим: p. Також вітаємо з майже зробленим!
MichaelHouse

@Rudy_TM libgdx.class дай мені помилку (libgdx не можна вирішити до типу), як це виправити?
LeSam

2
@ G3tinmybelly у своєму маніфесті змініть екран сплеску на активізацію запуску замість MainActivity,
Rudy_TM

-1

Це такий спосіб гри: libname - це "indiespot-media-0.8.09.jar", яку ви можете отримати тут .

Як користуватись:

  1. Завантажте повний zip
  2. Скопіюйте папку lib у корінь проекту (ffmpeg буде відкрито lib з path ./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. використовувати playerTextureяк звичайну текстуру
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.