Kodeki multimediów
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W Androidzie 10 (poziom API 29) i nowszym dostępne są metody w MediaCodecInfo
, które ujawniają więcej informacji o kodeku:
isSoftwareOnly()
- Zwraca wartość „prawda”, jeśli kodek działa tylko w oprogramowaniu. Kodeki programowe nie gwarantują wydajności renderowania.
isHardwareAccelerated()
- Zwraca wartość „prawda”, jeśli kodek jest akcelerowany sprzętowo.
isVendor()
- Zwraca wartość „true”, jeśli kodek jest dostarczany przez dostawcę urządzenia, lub „false”, jeśli jest dostarczany przez platformę Android.
isAlias()
MediaCodecList
może zawierać dodatkowe wpisy dotyczące tego samego kodeka, ale z użyciem alternatywnych nazw kodeków (aliasów). Ta metoda zwraca wartość true, jeśli kodek w tym wpisie jest aliasem innego kodeka.
Dodatkowo funkcja
MediaCodec.getCanonicalName()
zwraca nazwę bazowego kodeka w przypadku kodeków utworzonych za pomocą aliasu.
Punkt wydajności określa zdolność kodeka do renderowania filmu o określonej wysokości, szerokości i liczbie klatek na sekundę. Na przykład UHD_60
punkt wydajności
oznacza film w bardzo wysokiej rozdzielczości (3840 x 2160 pikseli) renderowany z szybkością 60 klatek
na sekundę.
Metoda
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
zwraca listę
PerformancePoint
wpisów, które kodek może renderować lub przechwytywać.
Możesz sprawdzić, czy dany PerformancePoint
obejmuje inny, dzwoniąc pod numer PerformancePoint.covers(PerformancePoint)
.
Na przykład UHD_60.covers(UHD_50)
zwraca wartość „prawda”.
Lista punktów wydajności jest dostępna dla wszystkich kodeków akcelerowanych sprzętowo.
Może to być pusta lista, jeśli kodek nie spełnia nawet najniższego standardu wydajności.
Pamiętaj, że urządzenia, które zostały zaktualizowane do Androida 10 (poziom interfejsu API 29) lub nowszego bez aktualizacji obrazu dostawcy, nie będą miały danych o punkcie wydajności, ponieważ te dane pochodzą z warstwy HAL dostawcy. W tym przypadku getSupportedPerformancePoints()
zwraca wartość null.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-08-27 UTC."],[],[],null,["Beginning with Android 10 (API level 29) and higher, there are methods in\n[`MediaCodecInfo`](/reference/android/media/MediaCodecInfo) that\nreveal more information about a codec:\n\n[`isSoftwareOnly()`](/reference/android/media/MediaCodecInfo#isSoftwareOnly)\n: Returns true if the codec runs in software only. Software codecs make no\n guarantees about rendering performance.\n\n[`isHardwareAccelerated()`](/reference/android/media/MediaCodecInfo#isHardwareAccelerated)\n: Returns true if a codec is accelerated by hardware.\n\n[`isVendor()`](/reference/android/media/MediaCodecInfo#isVendor)\n: Returns true if the codec is provided by the device vendor or false if provided\n by the Android platform.\n\n[`isAlias()`](/reference/android/media/MediaCodecInfo#isAlias)\n: `MediaCodecList` may contain additional entries for the same underlying codec\n using an alternate codec name/s (alias/es). This method returns true if the\n codec in this entry is an alias for another codec.\n\nIn addition,\n[`MediaCodec.getCanonicalName()`](/reference/android/media/MediaCodecInfo#getCanonicalName)\nreturns the underlying codec name for codecs created via an alias.\n\nPerformance Points\n\nA *performance point* represents a codec's ability to render video at a specific\nheight, width and frame rate. For example, the `UHD_60` performance point\nrepresents Ultra High Definition video (3840x2160 pixels) rendered at 60 frames\nper second.\n\nThe method\n[`MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()`](/reference/android/media/MediaCodecInfo.VideoCapabilities#getSupportedPerformancePoints())\nreturns a list of\n[`PerformancePoint`](/reference/android/media/MediaCodecInfo.VideoCapabilities.PerformancePoint)\nentries that the codec can render or capture.\n\nYou can check whether a given `PerformancePoint` covers another by calling\n[`PerformancePoint.covers(PerformancePoint)`](/reference/android/media/MediaCodecInfo.VideoCapabilities.PerformancePoint#covers(android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint)).\nFor example, `UHD_60.covers(UHD_50)` returns true.\n\nA list of performance points is provided for all hardware-accelerated codecs.\nThis could be an empty list if the codec does not meet even the lowest standard\nperformance point.\n\nNote that devices which have been upgraded to Android 10 (API level 29) and higher without\nupdating the vendor image will not have performance point data, because this\ndata comes from the vendor HAL. In this case, `getSupportedPerformancePoints()`\nreturns null."]]