Ứng dụng của tôi sử dụng HLS để truyền video từ máy chủ, nhưng khi tôi yêu cầu luồng HLS từ máy chủ, tôi cần phải truyền tốc độ bit video tối đa mà thiết bị có thể xử lý. Trong số Android API guides nó nói rằng "hồ sơ quay video có sẵn của thiết bị có thể được sử dụng làm proxy cho khả năng phát lại phương tiện", nhưng khi tôi cố gắng truy xuất videoBitRate cho các thiết bị quay mặt về phía sau, nó luôn quay lại 12Mb/s bất kể thiết bị (Galaxy Nexus, Galaxy Tab Plus 7 ", Galaxy Tab 8.9), mặc dù thực tế là họ có 3 GPU khác nhau (PowerVR SGX540, Mali-400 MP, Tegra 250 T20). Đây là mã của tôi, tôi có làm gì sai không?Làm thế nào để có được CamcorderProfile.videoBitRate cho một thiết bị Android?
CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
targetVideoBitRate = camcorderProfile.videoBitRate;
Nếu tôi cố gắng này trên Galaxy Tab Plus:
boolean hasProfile = CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_HIGH);
nó sẽ trả về True, mặc dù thực tế rằng QUALITY_HIGH dành cho quay phim 1080p và thông số kỹ thuật cho biết nó chỉ có thể ghi ở 720p.
điện thoại di động sẽ được khởi chạy với hệ điều hành Android phải cung cấp một số giá trị như vậy. đôi khi các thương hiệu chỉ đặt một số giá trị ngẫu nhiên vào các trường đó. Tôi phải đối mặt với một vấn đề tương tự khi cố gắng để có được góc nhìn của máy ảnh, nơi họ đặt các giá trị như 10 độ, đó là không thể khắc phục. Bạn có thể có cùng một vấn đề. họ không đưa ra một shit. họ chỉ muốn đặt một điện thoại thông minh trên thị trường và không quan tâm đến các lập trình viên –