LibGDX로 비디오 재생 화면으로 비디오를 넣고 싶지만 LibGDX를

LibGDX로 비디오를 재생하는 방법이 있습니까?

Android에서 스플래시 화면으로 비디오를 넣고 싶지만 LibGDX를 사용하고 거의 완료되었으므로 Android SDK를 사용하고 싶지 않습니다.



답변

LibGDX로 비디오를 재생 하는 것은 프로젝트 범위벗어난 것으로 정의 되었습니다 . 그래서 , 당신은 LibGDX를 사용하여 비디오를 재생할 수 없습니다.

그러나 비디오를 재생하기 위해 Android 전용 코드를 작성할 가능성을 배제하지는 않습니다. 그것은 단지 응용 프로그램이 LibGDX의 이식성을 유지하지 않음을 의미합니다.


답변

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>

답변

재생 방법은 다음과 같습니다. libname은 “indiespot-media-0.8.09.jar”이며 여기에 있습니다 .

사용하는 방법:

  1. 전체 zip 다운로드
  2. 프로젝트 루트에 lib 폴더 복사 (ffmpeg는 경로가 ./lib/ffmpeg/ffmpeg@os postfix @ 인 lib에 의해 열립니다)
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보통의 텍스처