เล่นวิดีโอด้วย LibGDX


22

มีวิธีการเล่นวิดีโอด้วย LibGDX หรือไม่?

ฉันต้องการใส่วิดีโอเป็นหน้าจอเริ่มต้นของฉันใน Android แต่ฉันไม่ต้องการใช้ Android SDK เพราะฉันใช้ LibGDX และฉันเกือบจะเสร็จแล้ว: /


มีส่วนขยายการแสดงผลวิดีโอข้ามแพลตฟอร์ม LibGDX คือ: github.com/libgdx/gdx-video
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 ในไฟล์ Manifest ของคุณเปลี่ยนหน้าจอสแปลชเป็นกิจกรรมตัวเรียกใช้งานแทน MainActivity
Rudy_TM

-1

นี่คือวิธีการเล่น: libname คือ "indiespot-media-0.8.09.jar" ซึ่งคุณจะได้รับ ที่นี่ที่นี่

วิธีใช้:

  1. ดาวน์โหลด zip เต็ม
  2. คัดลอกโฟลเดอร์ lib ในรูทของโครงการ (ffmpeg จะเปิดขึ้นโดย lib พร้อมพา ธ . /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เป็นพื้นผิวปกติ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.