Tôi đang phát video từ máy chủ của mình trên bề mặt bằng chế độ xem kết cấu, nhưng kéo dài video và không thể duy trì tỷ lệ khung hình của video. Tuy nhiên, tôi muốn duy trì tỷ lệ khung hình theo video như trong ứng dụng cây nho hoặc ứng dụng instagram.Phát video ở chế độ xem kết cấu với tỷ lệ khung hình của video
Trả lời
Bạn có thể thay đổi kích thước của Chế độ xem (sử dụng FrameLayout tùy chỉnh) hoặc sử dụng ma trận TextureView để thay đổi cách kết xuất được hiển thị.
Ví dụ về cả hai có thể được tìm thấy trong Grafika. Hoạt động "Phát video (TextureView)" thể hiện cấu hình ma trận để phù hợp với tỷ lệ khung hình của video. Xem phương pháp adjustAspectRatio()
, cốt lõi trong số đó là:
Lưu ý rằng trung tâm cũng như chia tỷ lệ video.
Bạn có thể sử dụng ExoPlayer https://github.com/google/ExoPlayer# và kiểm tra bản trình diễn đầy đủ. Nó duy trì tỷ lệ khung hình video một cách hoàn hảo.
Mở rộng về câu trả lời Fadden của trên: Nếu bạn muốn sắp xếp video theo cách khác khác hơn là chỉ tập trung nó, sửa đổi các dòng trong "adjustAspectRatio()" mã của Grafika:
int xoff = (viewWidth - newWidth)/2;
int yoff = (viewHeight - newHeight)/2;
để:
int xoff = 0; //align left
hoặc
int xoff = (viewWidth - newWidth); // align right
hoặc
int yoff = 0; // align top
hoặc
int yoff = (viewHeight - newHeight); // align bottom
Vâng tôi quá muộn để trả lời nhưng khi tôi nhận được từ Grafika bạn có thể sử dụng chức năng này
private void adjustAspectRatio(int videoWidth, int videoHeight) {
int viewWidth = mTextureView.getWidth();
int viewHeight = mTextureView.getHeight();
double aspectRatio = (double) videoHeight/videoWidth;
int newWidth, newHeight;
if (viewHeight > (int) (viewWidth * aspectRatio)) {
// limited by narrow width; restrict height
newWidth = viewWidth;
newHeight = (int) (viewWidth * aspectRatio);
} else {
// limited by short height; restrict width
newWidth = (int) (viewHeight/aspectRatio);
newHeight = viewHeight;
}
int xoff = (viewWidth - newWidth)/2;
int yoff = (viewHeight - newHeight)/2;
Log.v(TAG, "video=" + videoWidth + "x" + videoHeight +
" view=" + viewWidth + "x" + viewHeight +
" newView=" + newWidth + "x" + newHeight +
" off=" + xoff + "," + yoff);
Matrix txform = new Matrix();
mTextureView.getTransform(txform);
txform.setScale((float) newWidth/viewWidth, (float) newHeight/viewHeight);
//txform.postRotate(10); // just for fun
txform.postTranslate(xoff, yoff);
mTextureView.setTransform(txform);
}
là nó có thể sử dụng với exoplayer –
@Sagar Hudge yeah chắc chắn bạn có thể sử dụng exolplayer để chơi video, câu hỏi này là dành cho những người không sử dụng bất kỳ thư viện của bên thứ ba để phát video –
Tôi muốn phát video ở chế độ toàn màn hình theo chiều dọc nhưng nó kéo theo chiều dọc trên 'FILL' thay đổi kích thước, tôi muốn điền và cắt trung tâm –
- 1. iOS nhận tỷ lệ khung hình video
- 2. phát video ở đầu chế độ xem OpenGL trong android
- 3. Video không phát ở chế độ toàn màn hình
- 4. FFmpeg - Thay đổi độ phân giải của video với tỷ lệ khung hình
- 5. Android Streaming Video - Cần tỷ lệ khung hình
- 6. Nếu tỷ lệ khung hình <= 2, video từ hình ảnh là màn hình màu đen
- 7. Cách làm nổi bật chế độ xem mở rộng với chế độ xem tỷ lệ khung hình cố định
- 8. MediaRecorder quay video ở chế độ dọc
- 9. Cách xác định tỷ lệ khung hình mong muốn trên phần tử video html
- 10. Tự động phát video (Chế độ xem danh sách)
- 11. iOS - Quay video ở chế độ ngang trong khi thiết bị ở chế độ dọc
- 12. Nhận số khung hình trong Video HTML5
- 13. Cách đọc khung hình video theo khung?
- 14. Tính Chiều cao cho Hình ảnh/Video dựa trên Tỷ lệ Khung hình và Chiều rộng
- 15. Mã NSLayoutConstraints để căn giữa chế độ xem và duy trì tỷ lệ khung hình
- 16. Cách xử lý hình ảnh của video, khung theo khung hình trong phát video bằng cách sử dụng python Opencv
- 17. iPhone SDK: Bạn phát video như thế nào bên trong chế độ xem? Thay vì fullscreen
- 18. WKWebView không phát video ở chế độ ngang chỉ trong iOS 10
- 19. Quay video với tốc độ khung hình không xác định bằng FFmpeg
- 20. Pygame có thể phát hiện chế độ video của màn hình không?
- 21. video iframe sẽ không chuyển sang chế độ toàn màn hình trong chế độ xem web của Android
- 22. Giá trị cấu hình khung chơi trong chế độ xem
- 23. Phát hiện video 360 độ
- 24. Phát video trên Youtube ở chế độ nền bằng trình phát youtube api
- 25. Video không phát đúng cách với chế độ xem danh sách trong android
- 26. Tạo video từ khung hình?
- 27. Nhận hình thu nhỏ của video từ url video
- 28. cách nhận tổng thời lượng video trong chế độ xem video trong android
- 29. Phát video trên một phần của màn hình
- 30. Làm cách nào để buộc video phát ở chế độ toàn màn hình trong trình phát youtube?
@fadden hãy kiểm tra câu hỏi này https://stackoverflow.com/questions/48988063/how-can-i-scale-video-in-exoplayer-v2-play-video-in-full-screen sử dụng expoplayer là nó có thể để lớp ở trung tâm –