Android Q će omogućiti aplikacijama snimanje zvuka iz drugih aplikacija i praćenje temperature uređaja

Android Q dodaje novi API za snimanje internog audio izlaza iz druge aplikacije i također za praćenje temperature uređaja.

Google daje, Google uzima. Svako novo izdanje Androida uvodi mnogo novih API-ja koji poboljšavaju funkcionalnost postojećih aplikacija ili otvaraju nove kategorije aplikacija. S druge strane, Google također uklanja pristup ili ograničava mogućnosti postojećih API-ja kako bi poboljšao sigurnost platforme Android. Izdanje Androida Q nije ništa drugačije i već smo dosta govorili o njegovim promjenama u dijeljenoj pohrani, pristupu međuspremniku, obavijestima i drugim API-jima. Na ovogodišnjem Konferencija za razvojne programere Google I/O, Google je najavio nove API-je u Androidu Q koji su posebno zanimljivi za korisnike i programere mobilnih igara: AudioPlaybackCapture i Termalni API-ji.

Snimanje zvuka iz drugih aplikacija pomoću AudioPlaybackCapture u Androidu Q

Mobilno igranje ogromna je industrija bez znakova usporavanja u skorije vrijeme, osobito na tržištima poput SAD-a, Kine i Indije. Uz sve više ljudi koji provode vrijeme na svojim pametnim telefonima za igranje igrica i društvenih medija, ne čudi da ljudi žele dijeliti svoja iskustva igranja igara na internetu.

Android podržava snimanje zaslona od samog početka, ali snimanje videozapisa zaslona podržano je tek od Android 5.0 Lollipop s uvođenjem MediaProjection API. Nažalost, ovaj API ne dopušta aplikacijama trećih strana snimanje internog audio izlaza u drugim aplikacijama, prisiljavanje snimača zaslona treće strane da snimaju vanjski audioizlaz iz mikrofona uređaja (s). OEM proizvođači poput Samsunga i Huawei pružiti sistemske aplikacije za snimanje internog audio izlaza tijekom snimanja zaslona, ​​ali jedini način za vlasnike drugih uređaja za ispravno snimanje video i audio izlaza sa svojih uređaja je kupiti a pribor treće strane. Srećom, Google konačno predstavlja način u Androidu Q za aplikacije trećih strana za snimanje zvuka iz drugih aplikacija.

AudioPlaybackCapture API Google opisuje kao analog snimanja zaslona, ​​ali za audio snimanje. Iako je jedina aplikacija koja dosad koristi API Googleova Titl uživo, alat za pristupačnost koji dodaje titlove svakom videozapisu koji se reproducira na uređaju, API-ju dokumentacija navodi da je njegova primarna svrha omogućiti aplikacijama za strujanje da snime audio biće igrali igricama. Zamislite mobilne igrače koji strimuju svoje sesije na servise kao što su Twitch ili YouTube. API je osmišljen tako da ne utječe na kašnjenje zvuka aplikacije čiji se zvuk snima, što ga čini savršenim za snimanje igranja tako da se zvuk i video ne desinkroniziraju.

Za razliku od ranih dana Androida, Googleov pristup novim API-jima je oprezniji. AudioPlaybackCapture može se koristiti samo ako i aplikacija čiji se zvuk snima i aplikacija koja snima ispunjavaju posebne zahtjeve. Evo sažetka tih zahtjeva:

  • Da bi aplikacija treće strane snimila zvuk aplikacije, moraju biti ispunjeni sljedeći zahtjevi:
    • Aplikacija mora imati enableAudioPlaybackCapture postavljenu na true ili poništenu u manifestu. (Zadana je vrijednost true za aplikacije koje ciljaju Android Q, ali se može ručno postaviti za aplikacije koje ciljaju Android Pie.)
    • Aplikacija koja proizvodi zvuk mora imati upotrebu zvuka vrste USAGE_MEDIA, USAGE_GAME ili USAGE_UNKNOWN.
    • Pravila snimanja zvuka (setAllowedCapturePolicy) moraju biti postavljena na ALLOW_CAPTURE_BY_ALL. Ovo se pravilo može postaviti tijekom izvođenja, ali reprodukcija se mora ponovno pokrenuti da bi promjena pravila stupila na snagu. Ako je postavljen ALLOW_CAPTURE_BY_SYSTEM, samo aplikacije sustava mogu snimati zvuk (ali su ograničene u da ne mogu spremiti zvuk, proslijediti ga aplikaciji treće strane ili snimati na > 16kHz 16-bitni mono kvaliteta.)
  • Da bi aplikacija snimala zvuk iz druge aplikacije, moraju biti ispunjeni sljedeći zahtjevi:
    • Aplikacija mora prikazati upit MediaProjectionManager.createScreenCaptureIntent i korisnik ga mora prihvatiti.
      Dijaloški okvir za potvrdu koji korisnici vide kada aplikacija pokuša snimiti zaslon pomoću MediaProjection API-ja.
    • Aplikacija mora držati SNIMAJ_AUDIO dopuštenje.
    • Aplikacija mora biti u istom korisničkom profilu kao i aplikacija čiji će se zvuk snimati.

Pretpostavljam da će većina igara dopustiti da njihov zvuk bude snimljen aplikacijama koje koriste ovaj novi API, ali može proći neko vrijeme dok se igre ne ažuriraju kako bi ga podržale. S druge strane, ne očekujte da bilo koja aplikacija za strujanje glazbe ili videa podržava ovaj API za treće strane zbog problema s licenciranjem. Međutim, ograničenja koja je Google nametnuo ako aplikacija postavi svoje pravilo snimanja zvuka na ALLOW_CAPTURE_BY_SYSTEM znači da programeri aplikacija za strujanje glazbe i videa trebali bi se složiti s omogućavanjem snimanja zvuka od strane sustava radi poboljšanja pristupačnosti.

Da biste pročitali više o API-ju AudioPlaybackCapture u Androidu Q, pogledajte ova stranica.

Praćenje prigušivanja pomoću Thermal API-ja u Androidu Q

Termičkim prigušivanjem gotovo u potpunosti upravlja sustav bez unosa ili čak obavijesti aplikacijama na koje prigušivanje najviše utječe. Ako su resursi uređaja preopterećeni, većina uređaja će prigušiti brzine CPU-a i GPU-a na štetu performansi vaše igre. Ne postoji ništa što vi, kao razvojni programer igara, ne možete učiniti u vezi s tim osim upozoriti korisnika prije nego što promijeni bilo koju postavku o potencijalnom utjecaju koje njihove promjene mogu imati na performanse.

S novim Thermal API-jem u Androidu Q, međutim, aplikacije mogu primati povratne pozive za različite faze usporavanja performansi - dajući razvojni programeri imaju priliku pomoći smanjiti opterećenje uređaja smanjivanjem aktivnosti koje zahtijevaju značajan CPU, GPU ili modem korištenje. Na primjer, igra bi mogla dinamički smanjiti razlučivost sve dok uređaj više ne prigušuje GPU ili bi aplikacija Karte mogla onemogućiti poboljšane značajke kao što su navigacija proširene stvarnosti kako bi se smanjilo opterećenje CPU-a.

Za korištenje ovog novog API-ja, aplikacije registriraju slušatelja u PowerManageru (addThermalStatusListener) i sustav šalje aplikaciji jedan od sljedećih kodova termalnog statusa:

  • THERMAL_STATUS_NONE: "Nije pod prigušivanjem."
  • THERMAL_STATUS_LIGHT: "Prigušivanje svjetla gdje nema utjecaja na UX."
  • THERMAL_STATUS_MODERATE: "Umjereno prigušivanje gdje UX nije u velikoj mjeri pogođen."
  • THERMAL_STATUS_SEVERE: "Ozbiljno usporavanje gdje je UX uvelike pogođen."
  • THERMAL_STATUS_CRITICAL: "Platforma je učinila sve da smanji snagu."
  • THERMAL_STATUS_EMERGENCY: "Ključne komponente na platformi se isključuju zbog toplinskih uvjeta. Funkcionalnosti uređaja bit će ograničene."
  • THERMAL_STATUS_SHUTDOWN: "Potrebno je hitno isključivanje.

Podrška za Thermal API očito zahtijeva Android Q, ali još jedan uvjet je dodavanje novog HAL-a. Google kaže da će Pixel uređaji na Androidu Q (što znači Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, i Pixel 3a XL) podržavaju Thermal API, ali Google radi na dodavanju podrške za druge uređaje.

Pročitajte više o Thermal API ovdje.