Android Q ļaus lietotnēm ierakstīt audio no citām lietotnēm un pārraudzīt ierīces temperatūru

click fraud protection

Android Q pievieno jaunu API, lai ierakstītu iekšējo audio izvadi no citas lietotnes un arī uzraudzītu ierīces temperatūru.

Google dod, un Google atņem. Katrs jauns Android laidiens ievieš daudz jaunu API, kas uzlabo esošo lietotņu funkcionalitāti vai atver jaunas lietotņu kategorijas. No otras puses, Google arī atceļ piekļuvi vai ierobežo esošo API iespējas, lai uzlabotu Android platformas drošību. Android Q laidiens neatšķiras, un mēs jau esam daudz runājuši par tā izmaiņām koplietojamā krātuvē, starpliktuvē, paziņojumos un citās API. Šajā gadā Google I/O izstrādātāju konferencē Google paziņoja par jaunām API operētājsistēmā Android Q, kas ir īpaši interesantas lietotājiem un mobilo spēļu izstrādātājiem: AudioPlaybackCapture un Termiskās API.

Audio ierakstīšana no citām lietotnēm, izmantojot AudioPlaybackCapture operētājsistēmā Android Q

Mobilās spēles ir milzīga nozare, kurā nav pazīmju, ka tuvākajā laikā varētu palēnināties, īpaši tādos tirgos kā ASV, Ķīna un Indija. Tā kā arvien vairāk cilvēku pavada laiku savos viedtālruņos spēlēm un sociālajiem saziņas līdzekļiem, nav pārsteigums, ka cilvēki vēlas dalīties ar savu spēļu pieredzi tiešsaistē.

Android ir atbalstījusi ekrānuzņēmumu uzņemšanu būtībā jau no paša sākuma, bet ekrāna video uzņemšana ir atbalstīta tikai kopš operētājsistēmas Android 5.0 Lollipop, ieviešot MediaProjection API. Diemžēl šī API neļauj trešo pušu lietotnēm ierakstīt iekšējo audio izvadi citās lietotnēs, piespiežot trešo pušu ekrāna ierakstītājus ierakstīt ārējo audio izvadi no ierīces mikrofona (s). OEM, piemēram, Samsung un Huawei nodrošināt sistēmas lietotnes, lai ierakstītu iekšējo audio izvadi ekrāna ierakstīšanas laikā, taču tas ir vienīgais veids citu ierīču īpašniekiem, lai pareizi ierakstītu video un audio izvadi no savām ierīcēm, ir nopirkt a trešās puses piederums. Par laimi, Google beidzot ievieš veidu Android Q, lai trešo pušu lietotnes varētu ierakstīt audio no citām lietotnēm.

Google apraksta AudioPlaybackCapture API kā ekrāna tveršanas analogu, taču tas ir paredzēts audio ierakstīšanai. Lai gan pagaidām vienīgā lietotne, kas izmanto API, ir Google Subtitri reāllaikā, pieejamības rīks, kas pievieno parakstus jebkuram videoklipam, kas tiek atskaņots ierīcē — API dokumentācijā teikts, ka tā galvenais mērķis ir ļaut straumēšanas lietotnēm tvert audio būtni spēlēja spēles. Iedomājieties, ka mobilie spēlētāji straumē savas sesijas tādos pakalpojumos kā Twitch vai YouTube. API ir izstrādāta tā, lai neietekmētu tās lietotnes audio latentumu, kuras audio tiek tverts, tāpēc tas ir lieliski piemērots spēles ierakstīšanai, lai audio un video netiktu sinhronizēti.

Atšķirībā no Android sākuma dienām Google pieeja jaunajām API ir piesardzīgāka. AudioPlaybackCapture var izmantot tikai tad, ja gan lietotne, kuras audio tiek tverts, gan lietotne, kas veic tveršanu, atbilst īpašām prasībām. Tālāk ir sniegts šo prasību kopsavilkums.

  • Lai trešās puses lietotne varētu tvert lietotnes audio, ir jāievēro tālāk norādītās prasības.
    • Lietojumprogrammas manifestā ir jābūt iestatījumam allowAudioPlaybackCapture, kas ir iestatīts uz True vai atiestatīts. (Noklusējuma vērtība ir patiesa lietotnēm, kuru mērķauditorija ir Android Q, taču to var manuāli iestatīt lietotnēm, kuru mērķauditorija ir Android Pie.)
    • Lietojumprogrammai, kas rada audio, audio lietojumam ir jābūt USAGE_MEDIA, USAGE_GAME vai USAGE_UNKNOWN.
    • Audio uztveršanas politikai (setAllowedCapturePolicy) ir jābūt iestatītai uz ALLOW_CAPTURE_BY_ALL. Šo politiku var iestatīt izpildlaikā, taču atskaņošana ir jārestartē, lai politikas izmaiņas stātos spēkā. Ja ir iestatīta ALLOW_CAPTURE_BY_SYSTEM, tikai sistēmas lietotnes var ierakstīt audio (bet ir ierobežotas ka viņi nevar saglabāt audio, nodot to trešās puses lietotnei vai ierakstīt ar > 16kHz 16 bitu mono kvalitāte.)
  • Lai lietotne varētu ierakstīt audio no citas lietotnes, ir jāievēro tālāk norādītās prasības.
    • Lietojumprogrammai ir jāatver MediaProjectionManager.createScreenCaptureIntent uzvedne, un lietotājam tā ir jāpieņem.
      Apstiprinājuma dialoglodziņš, ko lietotāji redz, kad lietotne mēģina tvert ekrānu, izmantojot MediaProjection API.
    • Lietotnei ir jātur RECORD_AUDIO atļauju.
    • Lietotnei ir jāatrodas tajā pašā lietotāja profilā kā lietotnei, kuras audio tiks ierakstīts.

Es varētu iedomāties, ka lielākā daļa spēļu ļaus tvert to audio lietotnēm, kas izmanto šo jauno API, taču var paiet zināms laiks, līdz spēles tiks atjauninātas, lai to atbalstītu. No otras puses, negaidiet, ka neviena mūzikas vai video straumēšanas lietotne atbalstīs šo API trešo pušu licencēšanas problēmu dēļ. Tomēr Google noteiktie ierobežojumi, ja lietotne iestata audio uztveršanas politiku uz ALLOW_CAPTURE_BY_SYSTEM, nozīmē, ka Mūzikas un video straumēšanas lietotņu izstrādātājiem vajadzētu būt spējīgiem sistēmai iespējot audio uztveršanu, lai uzlabotu pieejamību.

Lai uzzinātu vairāk par AudioPlaybackCapture API operētājsistēmā Android Q, skatiet šo lapu.

Droseles pārraudzība, izmantojot termisko API operētājsistēmā Android Q

Termisko droseles darbību gandrīz pilnībā pārvalda sistēma, bez ievades vai pat nepaziņojot tām lietotnēm, kuras droseles ietekmē visvairāk. Ja ierīces resursi ir pārāk noslogoti, lielākā daļa ierīču samazina CPU un GPU ātrumu, tādējādi kaitējot jūsu spēles veiktspējai. Jūs kā spēļu izstrādātājs neko īsti nevarat darīt, izņemot brīdināt lietotāju pirms iestatījumu maiņas par iespējamo izmaiņu ietekmi uz veiktspēju.

Izmantojot jauno Thermal API operētājsistēmā Android Q, lietotnes var saņemt atzvanus dažādiem veiktspējas samazināšanas posmiem, nodrošinot izstrādātājiem ir iespēja palīdzēt samazināt ierīces slodzi, samazinot darbības, kurām nepieciešams ievērojams CPU, GPU vai modems lietojums. Piemēram, spēle var dinamiski samazināt izšķirtspēju, līdz ierīce vairs nekontrolē GPU, vai lietotne Maps var atspējot uzlabotās funkcijas, piemēram, paplašinātās realitātes navigācija lai samazinātu CPU slodzi.

Lai izmantotu šo jauno API, lietotnes reģistrē uztvērēju programmā PowerManager (addThermalStatusListener), un sistēma nosūta lietotnei vienu no šiem termiskā statusa kodiem:

  • THERMAL_STATUS_NONE: "Nav zem droseles."
  • THERMAL_STATUS_LIGHT: "Vieglā regulēšana, ja UX netiek ietekmēta."
  • THERMAL_STATUS_MODERATE: "Mērena regulēšana, ja UX nav lielā mērā ietekmēta."
  • THERMAL_STATUS_SEVERE: "Smaga ierobežošana gadījumos, kad UX ir lielā mērā ietekmēta."
  • THERMAL_STATUS_CRITICAL: "Platforma ir darījusi visu, lai samazinātu jaudu."
  • THERMAL_STATUS_EMERGENCY: "Galvenās platformas sastāvdaļas tiek izslēgtas termiskā stāvokļa dēļ. Ierīces funkcionalitāte būs ierobežota."
  • THERMAL_STATUS_SHUTDOWN: "Nekavējoties jāizslēdz.

Thermal API atbalstam acīmredzami ir nepieciešams Android Q, taču vēl viena prasība ir jauna HAL pievienošana. Google saka, ka Pixel ierīces operētājsistēmā Android Q (tas nozīmē Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, un Pixel 3a XL) atbalsta Thermal API, bet Google strādā pie atbalsta pievienošanas citām ierīcēm.

Lasiet vairāk par Thermal API šeit.