Android Q antaa sovellusten tallentaa ääntä muista sovelluksista ja seurata laitteen lämpötilaa

Android Q lisää uuden API: n sisäisen äänen tallentamiseen toisesta sovelluksesta ja myös laitteen lämpötilan seuraamiseen.

Google antaa ja Google ottaa pois. Jokainen uusi Android-julkaisu sisältää paljon uusia sovellusliittymiä, jotka joko parantavat olemassa olevien sovellusten toimivuutta tai avaavat uusia sovellusluokkia. Toisaalta Google myös poistaa pääsyn olemassa oleviin sovellusliittymiin tai rajoittaa niiden ominaisuuksia parantaakseen Android-alustan turvallisuutta. Android Q -julkaisu ei eroa toisistaan, ja olemme jo puhuneet paljon sen muutoksista jaettuun tallennustilaan, leikepöydän käyttöön, ilmoituksiin ja muihin sovellusliittymiin. Tänä vuonna Google I/O -kehittäjäkonferenssissa, Google julkisti Android Q: ssa uusia sovellusliittymiä, jotka ovat erityisen kiinnostavia käyttäjille ja mobiilipelien kehittäjille: AudioPlaybackCapture ja Thermal API.

Äänen tallentaminen muista sovelluksista AudioPlaybackCapturella Android Q: ssa

Mobiilipelaaminen on valtava ala, jossa ei ole merkkejä hidastumisesta lähiaikoina, etenkään sellaisilla markkinoilla kuin Yhdysvalloissa, Kiinassa ja Intiassa. Yhä useammat ihmiset viettävät aikaa älypuhelimillaan pelaamiseen ja sosiaaliseen mediaan, joten ei ole yllätys, että ihmiset haluavat jakaa pelikokemuksensa verkossa.

Android on tukenut kuvakaappausten ottamista periaatteessa alusta lähtien, mutta videoiden kaappaamista näytöstä on tuettu vasta Android 5.0 Lollipopista lähtien, kun MediaProjection API. Valitettavasti tämä sovellusliittymä ei salli kolmansien osapuolien sovellusten tallentaa sisäistä äänilähtöä toisissa sovelluksissa, pakottaa kolmannen osapuolen näytön tallentimet tallentamaan ulkoista ääntä laitteen mikrofonista (s). OEM-valmistajat, kuten Samsung ja Huawei tarjota järjestelmäsovelluksia sisäisen äänen tallentamiseen näytön tallennuksen aikana, mutta ainoa tapa Muiden laitteiden omistajille on hyvä ostaa video- ja äänilähtö laitteistaan a kolmannen osapuolen lisävaruste. Onneksi Google on vihdoin esittelemässä Android Q: ssa tavan, jolla kolmannen osapuolen sovellukset voivat tallentaa muiden sovellusten ääntä.

Google kuvailee AudioPlaybackCapture API: ta näytön kaappauksen analogiseksi, mutta äänen tallennusta varten. Vaikka toistaiseksi ainoa sovellusliittymää käyttävä sovellus on Googlen Livetekstitys, esteettömyystyökalu, joka lisää tekstitykset kaikkiin videoihin, joita toistetaan laitteella, API: lla dokumentaatiossa todetaan, että sen ensisijainen tarkoitus on sallia suoratoistosovellusten kaapata ääniolennot pelattu peleillä. Ajattele mobiilipelaajia, jotka suoratoistavat istuntojaan palveluihin, kuten Twitchiin tai YouTubeen. API on suunniteltu siten, ettei se vaikuta sen sovelluksen äänen latenssiin, jonka ääntä kaapataan, joten se sopii täydellisesti pelin tallentamiseen, jotta ääni ja video eivät synkronoidu.

Toisin kuin Androidin alkuaikoina, Googlen lähestymistapa uusiin sovellusliittymiin on varovaisempi. AudioPlaybackCapturea voidaan käyttää vain, jos sekä sovellus, jonka ääntä kaapataan, että sovellus, joka kaappaa, täyttävät tietyt vaatimukset. Tässä on yhteenveto näistä vaatimuksista:

  • Jotta kolmannen osapuolen sovellus kaappaa sovelluksen äänen, seuraavat vaatimukset on täytettävä:
    • Sovelluksen manifestissa on oltava allowAudioPlaybackCapture-asetuksena joko tosi tai ei asetettu. (Se on oletuksena tosi sovelluksille, jotka on kohdistettu Android Q: lle, mutta se voidaan määrittää manuaalisesti Android Pie -kohdistuksille.)
    • Ääntä tuottavan sovelluksen äänenkäytön on oltava tyyppiä USAGE_MEDIA, USAGE_GAME tai USAGE_UNKNOWN.
    • Äänenkaappauskäytännöksi (setAllowedCapturePolicy) on asetettava ALLOW_CAPTURE_BY_ALL. Tämä käytäntö voidaan määrittää suorituksen aikana, mutta toisto on käynnistettävä uudelleen, jotta käytäntömuutos astuu voimaan. Jos ALLOW_CAPTURE_BY_SYSTEM on asetettu, vain järjestelmäsovellukset voivat tallentaa ääntä (mutta niitä on rajoitettu että he eivät voi tallentaa ääntä, välittää sitä kolmannen osapuolen sovellukselle tai tallentaa yli 16 kHz 16-bittisellä monolla laatu.)
  • Jotta sovellus voi tallentaa ääntä toisesta sovelluksesta, seuraavien vaatimusten on täytettävä:
    • Sovelluksen on tuotava esiin MediaProjectionManager.createScreenCaptureIntent-kehote, ja käyttäjän on hyväksyttävä se.
      Vahvistusikkuna, jonka käyttäjät näkevät, kun sovellus yrittää kaapata näytön MediaProjection API: n avulla.
    • Sovelluksen tulee pitää sisällään RECORD_AUDIO lupa.
    • Sovelluksen on oltava samassa käyttäjäprofiilissa kuin sovellus, jonka ääni tallennetaan.

Voisin kuvitella, että useimmat pelit antavat tämän uuden API: n käyttävien sovellusten tallentaa äänensä, mutta saattaa kestää jonkin aikaa, ennen kuin pelit päivitetään tukemaan sitä. Toisaalta älä odota, että musiikin tai videoiden suoratoistosovellukset tukevat tätä sovellusliittymää kolmansille osapuolille lisensointiongelmien vuoksi. Googlen asettamat rajoitukset, jos sovellus asettaa äänentallennuskäytännöksi ALLOW_CAPTURE_BY_SYSTEM, tarkoittavat, että musiikin ja videon suoratoistosovellusten kehittäjien tulisi sallia äänen sieppaus järjestelmän avulla saavutettavuuden parantamiseksi.

Jos haluat lukea lisää AudioPlaybackCapture API: sta Android Q: ssa, tutustu tämä sivu.

Ohjauksen valvonta Thermal API: lla Android Q: ssa

Lämpökuristusta hallitsee lähes kokonaan järjestelmä ilman syöttöä tai edes ilmoitusta sovelluksilta, joihin kuristus vaikuttaa eniten. Jos laitteen resurssit ovat liian rasittuja, useimmat laitteet kuristavat suorittimen ja GPU: n nopeuksia pelisi suorituskyvyn kustannuksella. Sinä pelien kehittäjänä et voi tehdä asialle muuta kuin varoittaa käyttäjää ennen kuin hän muuttaa asetuksia mahdollisista vaikutuksista, joita heidän muutoksillaan voi olla suorituskykyyn.

Android Q: n uuden Thermal API: n avulla sovellukset voivat kuitenkin vastaanottaa takaisinsoittoja suorituskyvyn kuristamisen eri vaiheissa - kehittäjät voivat auttaa vähentämään laitteen rasitusta vähentämällä toimintoja, jotka vaativat merkittävää suoritinta, GPU: ta tai modeemia käyttö. Peli voi esimerkiksi pienentää resoluutiota dynaamisesti, kunnes laite ei enää ole GPU-kurista, tai Maps-sovellus voi poistaa käytöstä lisäominaisuuksia, kuten lisätyn todellisuuden navigointi vähentääksesi prosessorin kuormitusta.

Tämän uuden API: n käyttämiseksi sovellukset rekisteröivät kuuntelijan PowerManagerissa (addThermalStatusListener) ja järjestelmä lähettää sovellukselle yhden seuraavista lämpötilakoodeista:

  • THERMAL_STATUS_NONE: "Ei kurista."
  • THERMAL_STATUS_LIGHT: "Kevyt säätö, jossa käyttökokemukseen ei vaikuta."
  • THERMAL_STATUS_MODERATE: "Kohtalainen kuristus, jossa käyttökokemukseen ei ole suurta vaikutusta."
  • THERMAL_STATUS_SEVERE: "Vakava kuristus, jossa käyttökokemukseen on suuri vaikutus."
  • THERMAL_STATUS_CRITICAL: "Alusta on tehnyt kaikkensa vähentääkseen tehoa."
  • THERMAL_STATUS_EMERGENCY: "Alustan keskeiset komponentit sammuvat lämpöolosuhteiden vuoksi. Laitteen toimintoja rajoitetaan."
  • THERMAL_STATUS_SHUTDOWN: "Tarvitsee sammutuksen välittömästi.

Thermal API: n tuki vaatii tietysti Android Q: n, mutta toinen vaatimus on uuden HAL: n lisääminen. Google sanoo, että Android Q: n Pixel-laitteet (eli Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, ja Pixel 3a XL) tukevat Thermal APIa, mutta Google pyrkii lisäämään tukea muille laitteille.

Lue lisää aiheesta Thermal API täällä.