Phát video với LibGDX


22

Có cách nào để phát video với LibGDX không?

Tôi muốn đặt video làm màn hình giật gân của mình trong Android, nhưng tôi không muốn sử dụng SDK Android, vì tôi đang sử dụng LibGDX và tôi sắp hoàn thành: /


Có một tiện ích mở rộng kết xuất video đa nền tảng LibGDX: github.com/libgdx/gdx-video
tsc khoa

Câu trả lời:


12

Phát video với LibGDX đã được xác định là nằm ngoài phạm vi của dự án. Vì vậy, không , bạn không thể phát video bằng LibGDX.

Điều này không loại trừ khả năng viết mã cụ thể cho Android để phát video. Điều đó chỉ có nghĩa là ứng dụng của bạn sẽ không duy trì tính di động của LibGDX.


:( ok cảm ơn vì câu trả lời đó: / Tôi cho rằng tôi phải sử dụng SDK Android, cảm ơn :)
Rudy_TM

3
Tôi đã làm điều đó với Android :) Tôi đã tạo một Hoạt động mới và Bố cục mới và khi video kết thúc phát lại, tôi bắt đầu hoạt động có lời kêu gọi libGDX
Rudy_TM

Tốt đẹp! Điều đó thật nhanh, tôi đoán rằng rốt cuộc nó không quá khó để làm.
MichaelHouse

1
@Rudy_TM vui lòng thêm câu này dưới dạng câu trả lời được chấp nhận - rằng bạn đã giải quyết nó với một Hoạt động mới. Điều đó sẽ giúp những người khác có cùng câu hỏi sau này.
tro999

Thật dễ dàng để viết mã cụ thể nền tảng trong libgdx, vì vậy chỉ vì nó không hỗ trợ video ngoài hộp không có nghĩa là không thể thực hiện được, như câu trả lời của bạn ngụ ý.
Matsemann

20

Như Byte56 đã nói, trong libGDX, bạn không thể phát video :( vì vậy tôi đã làm điều này:

Tôi đã tạo một hoạt động mới "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();
    }
}

Trong phương thức "onCompletion", tôi sử dụng ý định gọi hoạt động mới của mình trong đó lệnh gọi "khởi tạo" để công cụ libGDX hoạt động

Và một bố cục mới cho 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 Cảm ơn bạn đã đăng câu trả lời này, nó sẽ hữu ích cho khách truy cập trong tương lai.
MichaelHouse

1
Bạn được chào đón :) Tôi đã dành hai ngày để thử những thứ khác nhau XD và đây là lần cuối cùng: P
Rudy_TM

2
Nó luôn luôn là cái cuối cùng phải không? Tôi đoán bởi vì bạn ngừng tìm kiếm sau đó: p. Cũng xin chúc mừng gần như đã được thực hiện!
MichaelHouse

@Rudy_TM libgdx. Class cho tôi một lỗi (libgdx không thể được giải quyết thành một loại), làm thế nào để khắc phục nó?
LeSam

2
@ G3tinmybelly trong bảng kê khai của bạn thay đổi màn hình giật gân của bạn thành hoạt động của trình khởi chạy thay vì MainActivity,
Rudy_TM

-1

Đây là cách chơi: libname là "indiespot-media-0.8.09.jar" mà bạn có thể lấy ở đây .

Cách sử dụng:

  1. Tải xuống toàn bộ zip
  2. Sao chép thư mục lib trong thư mục gốc của dự án (ffmpeg sẽ được mở bằng lib với đường dẫn ./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. sử dụng playerTexturenhư kết cấu thông thường
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.