มีวิธีการเล่นวิดีโอด้วย LibGDX หรือไม่?
ฉันต้องการใส่วิดีโอเป็นหน้าจอเริ่มต้นของฉันใน Android แต่ฉันไม่ต้องการใช้ Android SDK เพราะฉันใช้ LibGDX และฉันเกือบจะเสร็จแล้ว: /
มีวิธีการเล่นวิดีโอด้วย LibGDX หรือไม่?
ฉันต้องการใส่วิดีโอเป็นหน้าจอเริ่มต้นของฉันใน Android แต่ฉันไม่ต้องการใช้ Android SDK เพราะฉันใช้ LibGDX และฉันเกือบจะเสร็จแล้ว: /
คำตอบ:
การเล่นวิดีโอด้วย 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" ซึ่งคุณจะได้รับ ที่นี่ที่นี่
วิธีใช้:
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);
}
};
playerTexture
เป็นพื้นผิวปกติ