Moja aplikacja używa HLS do strumieniowego przesyłania wideo z serwera, ale gdy zażądam strumienia HLS z serwera, muszę przekazać mu maksymalną szybkość transmisji wideo, którą urządzenie może obsłużyć. W dokumencie Android API guides jest napisane, że "dostępne profile nagrywania wideo w urządzeniu mogą służyć jako proxy dla możliwości odtwarzania multimediów", ale kiedy próbuję pobrać wideoBitRate dla kamery skierowanej do tyłu urządzenia, zawsze wraca ona jako 12 Mb/s, niezależnie od urządzenie (Galaxy Nexus, Galaxy Tab Plus 7 ", Galaxy Tab 8.9), pomimo tego, że mają 3 różne procesory graficzne (PowerVR SGX540, Mali-400 MP, Tegra 250 T20). Oto mój kod, czy robię coś nie tak?Jak zdobyć CamcorderProfile.videoBitRate na urządzenie z systemem Android?
CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
targetVideoBitRate = camcorderProfile.videoBitRate;
Gdy próbuję to na Galaxy Tab Plus:
boolean hasProfile = CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_HIGH);
zwraca prawda, pomimo faktu, że QUALITY_HIGH służy do nagrywania w rozdzielczości 1080p, a specyfikacja mówi, że może nagrywać tylko w rozdzielczości 720p.
telefon komórkowy uruchamiany z systemem operacyjnym Android musi zapewniać pewne wartości, takie jak ta. czasami marki po prostu umieszczają pewną losową wartość na tych polach. Stawiałem czoła podobnemu problemowi, próbując uzyskać kąt widzenia kamery, w którym umieszcza się wartości takie jak 10 stopni, co jest niemożliwe do zniesienia. Prawdopodobnie masz ten sam problem. nie dają gówna. chcą po prostu wprowadzić smartfona na rynek i nie dbają o programistów –