Android Q prideda naują API, skirtą įrašyti vidinį garso išvestį iš kitos programos ir stebėti įrenginio temperatūrą.
Google duoda, o Google atima. Kiekviename naujame „Android“ leidime pristatoma daug naujų API, kurios pagerina esamų programų funkcionalumą arba atveria naujas programų kategorijas. Kita vertus, „Google“ taip pat pašalina prieigą prie esamų API arba apriboja jų galimybes, kad pagerintų „Android“ platformos saugumą. „Android Q“ leidimas nesiskiria, ir mes jau daug kalbėjome apie bendrinamos saugyklos, iškarpinės prieigos, pranešimų ir kitų API pakeitimus. Šiais metais „Google I/O“ kūrėjų konferencijoje „Google“ paskelbė apie naujas „Android Q“ API, kurios ypač įdomios vartotojams ir žaidimų mobiliesiems kūrėjams: „AudioPlaybackCapture“ ir Šiluminės API.
Garso įrašymas iš kitų programų naudojant „AudioPlaybackCapture“ sistemoje „Android Q“.
Mobilieji žaidimai yra didžiulė pramonė, kurioje nėra požymių, kad greitu metu sulėtėtų, ypač tokiose rinkose kaip JAV, Kinija ir Indija. Vis daugiau žmonių praleidžia laiką prie savo išmaniųjų telefonų žaidimams ir socialinei žiniasklaidai, todėl nenuostabu, kad žmonės nori pasidalinti savo žaidimų patirtimi internete.
„Android“ palaiko ekrano kopijų darymą iš esmės nuo pat pradžių, tačiau ekrano vaizdo įrašų fiksavimas palaikomas tik nuo „Android 5.0 Lollipop“ įdiegimo. MediaProjection API. Deja, ši API neleidžia trečiųjų šalių programoms įrašyti vidinės garso išvesties kitose programose, verčiant trečiųjų šalių ekrano įrašymo įrenginius įrašyti išorinį garso išvestį iš įrenginio mikrofono (s). OEM, pvz., „Samsung“ ir Huawei teikti sistemos programas, skirtas įrašyti vidinį garso išvestį ekrano įrašymo metu, tačiau tai vienintelis būdas kitų įrenginių savininkams, norint tinkamai įrašyti vaizdo ir garso išvestį iš savo įrenginių, yra pirkti a trečiosios šalies priedas. Laimei, „Google“ pagaliau „Android Q“ pristato būdą, kaip trečiųjų šalių programoms įrašyti garsą iš kitų programų.
„Google“ apibūdina „AudioPlaybackCapture“ API kaip ekrano fiksavimo analogą, bet skirtą garso įrašymui. Nors kol kas vienintelė programa, kuri naudoja API, yra „Google“. Subtitrai gyvai, pritaikymo neįgaliesiems įrankis, kuris prideda antraštes prie bet kurio vaizdo įrašo, leidžiamo įrenginyje, API dokumentuose teigiama, kad jo pagrindinis tikslas yra leisti srautinio perdavimo programoms užfiksuoti garso būtį žaidžiama žaidimais. Pagalvokite apie mobiliuosius žaidėjus, transliuojančius savo seansus į tokias paslaugas kaip „Twitch“ ar „YouTube“. API sukurta taip, kad nepaveiktų programos, kurios garsas fiksuojamas, garso delsos, todėl ji puikiai tinka žaidimo įrašymui, kad garsas ir vaizdo įrašas nebūtų desinchronizuojami.
Skirtingai nei pirmaisiais „Android“ laikais, „Google“ požiūris į naujas API yra atsargesnis. „AudioPlaybackCapture“ galima naudoti tik tuo atveju, jei ir programa, kurios garsas fiksuojamas, ir programa, kuri fiksuoja, atitinka konkrečius reikalavimus. Štai šių reikalavimų santrauka:
- Kad programos garsą užfiksuotų trečiosios šalies programa, turi būti laikomasi šių reikalavimų:
- Programos apraše „AllowAudioPlaybackCapture“ turi būti nustatyta į „true“ arba nenustatyta. (Numatytasis nustatymas yra „true“ programoms, taikomoms „Android Q“, bet gali būti rankiniu būdu nustatytas programoms, taikomoms „Android Pie“.)
- Garsą kuriančios programos garso naudojimo tipas turi būti USAGE_MEDIA, USAGE_GAME arba USAGE_UNKNOWN.
- Garso įrašymo politika (setAllowedCapturePolicy) turi būti nustatyta į ALLOW_CAPTURE_BY_ALL. Šią politiką galima nustatyti vykdymo metu, tačiau norint, kad politikos pakeitimas įsigaliotų, atkūrimas turi būti paleistas iš naujo. Jei nustatyta ALLOW_CAPTURE_BY_SYSTEM, tada tik sistemos programos gali įrašyti garsą (tačiau yra ribojamos kad jie negali išsaugoti garso, perduoti jo trečiosios šalies programai arba įrašyti > 16 kHz 16 bitų monofoniniu kokybė.)
- Kad programa galėtų įrašyti garsą iš kitos programos, turi būti įvykdyti šie reikalavimai:
- Programa turi parodyti MediaProjectionManager.createScreenCaptureIntent raginimą, o vartotojas turi jį priimti.
- Programa turi turėti RECORD_AUDIO leidimas.
- Programa turi būti tame pačiame vartotojo profilyje kaip ir programa, kurios garsas bus įrašytas.
- Programa turi parodyti MediaProjectionManager.createScreenCaptureIntent raginimą, o vartotojas turi jį priimti.
Įsivaizduočiau, kad daugumos žaidimų garsą galės užfiksuoti programos, naudojančios šią naują API, tačiau gali praeiti šiek tiek laiko, kol žaidimai bus atnaujinti, kad jį palaikytų. Kita vertus, nesitikėkite, kad jokios muzikos ar vaizdo transliacijos programos palaikys šią trečiųjų šalių API dėl licencijavimo problemų. Tačiau apribojimai, kuriuos „Google“ nustato, jei programa nustato garso įrašymo politiką į ALLOW_CAPTURE_BY_SYSTEM, reiškia, kad muzikos ir vaizdo įrašų srautinio perdavimo programų kūrėjai turėtų turėti galimybę sistemoje įjungti garso įrašymą, kad būtų pagerintas pasiekiamumas.
Norėdami daugiau sužinoti apie „Android Q“ „AudioPlaybackCapture“ API, peržiūrėkite šitas puslapis.
Droselio stebėjimas naudojant terminį API sistemoje „Android Q“.
Šiluminį reguliavimą beveik visiškai valdo sistema, be įvesties iš programų, kurias labiausiai paveikė droselis, ar net negaunant joms pranešimo. Jei įrenginio ištekliai per daug įtempti, dauguma įrenginių sumažins procesoriaus ir GPU greitį, o tai pakenks jūsų žaidimo našumui. Jūs, kaip žaidimų kūrėjas, tikrai negalite nieko padaryti, tik įspėti vartotoją prieš pakeičiant bet kokius nustatymus apie galimą jų pakeitimų poveikį našumui.
Tačiau naudojant naująją „Thermal API“ sistemoje „Android Q“, programos gali gauti atgalinius skambučius įvairiems našumo mažinimo etapams. kūrėjams suteikiama galimybė padėti sumažinti įrenginio apkrovą, sumažinant veiklą, kuriai reikalingas didelis CPU, GPU arba modemas naudojimas. Pavyzdžiui, žaidimas gali dinamiškai sumažinti skiriamąją gebą, kol įrenginys nustos reguliuoti GPU, arba Žemėlapių programa gali išjungti patobulintas funkcijas, pvz., papildytos realybės navigacija sumažinti procesoriaus apkrovą.
Norėdami naudoti šią naują API, programos užregistruoja klausytoją PowerManager (addThermalStatusListener), o sistema siunčia programai vieną iš šių terminės būsenos kodų:
- THERMAL_STATUS_NONE: "Neribojama."
- THERMAL_STATUS_LIGHT: "Lengvas reguliavimas, kai UX neturi įtakos."
- THERMAL_STATUS_MODERATE: "Vidutinis ribojimas, kai UX neturi didelės įtakos."
- THERMAL_STATUS_SEVERE: "Smarkus ribojimas, kai UX yra labai paveikta."
- THERMAL_STATUS_CRITICAL: "Platforma padarė viską, kad sumažintų galią."
- THERMAL_STATUS_EMERGENCY: "Pagrindiniai platformos komponentai išjungiami dėl šiluminės būklės. Įrenginio funkcijos bus ribotos.
- THERMAL_STATUS_SHUTDOWN: „Reikia nedelsiant išjungti.
„Thermal API“ palaikymui akivaizdžiai reikalinga „Android Q“, tačiau dar vienas reikalavimas yra pridėti naują HAL. „Google“ teigia, kad „Pixel“ įrenginiai „Android Q“ (tai reiškia „Pixel“, „Pixel XL“, „Pixel 2“, „Pixel 2 XL“, „Pixel 3“, „Pixel 3 XL“, Pixel 3a, ir „Pixel 3a XL“.) palaiko Thermal API, tačiau „Google“ stengiasi pridėti kitų įrenginių palaikymą.
Skaitykite daugiau apie Terminis API čia.