Nếu bạn hiển thị khung ở tốc độ tối đa, bạn sẽ đạt 60 khung hình/giây trên hầu hết các thiết bị. Bạn cần phải tốc độ nó theo tem thời gian trình bày được cung cấp bởi bộ mã hóa.
Ví dụ: nếu đầu vào là định dạng được Android hỗ trợ (ví dụ: tệp .mp4 điển hình), bạn có thể sử dụng lớp MediaExtractor để trích xuất từng khung. Dấu thời gian có thể được truy xuất với getSampleTime()
. Bạn muốn trì hoãn hiển thị bằng sự khác biệt giữa dấu thời gian trên các khung hình liên tiếp - đừng cho rằng khung đầu tiên sẽ có dấu thời gian bằng 0.
Ngoài ra, đừng cho rằng khung hình video xuất hiện ở tốc độ không đổi (ví dụ: 30 khung hình/giây). Đối với một số nguồn, khung sẽ đến không đều.
Xem ví dụ "Phát video (TextureView)" trong Grafika, đặc biệt là lớp SpeedControlCallback
. Video gen-eight-rects.mp4
sử dụng thời lượng khung biến đổi để thực hiện. Nếu bạn chọn hộp "Phát ở tốc độ 60 khung hình/giây", dấu thời gian trình bày sẽ bị bỏ qua.
Bạn đã nhận được thông tin này ở đâu? – BlueVoodoo
Bạn có thể vui lòng đăng mã của mình không. Nó sẽ là hữu ích gỡ lỗi – itsmeagain
tôi đang có cùng một vấn đề, có bạn figured nó ra? – xiaowoo