Android Q akan memungkinkan aplikasi merekam audio dari aplikasi lain dan memantau suhu perangkat

Android Q menambahkan API baru untuk merekam output audio internal dari aplikasi lain dan juga untuk memantau suhu perangkat.

Google memberi, dan Google mengambil. Setiap rilis Android baru memperkenalkan banyak API baru yang meningkatkan fungsionalitas aplikasi yang ada atau membuka kategori aplikasi baru. Di sisi lain, Google juga menghapus akses atau membatasi kemampuan API yang ada untuk meningkatkan keamanan platform Android. Rilis Android Q juga demikian, dan kami telah membicarakan banyak hal tentang perubahannya pada penyimpanan bersama, akses clipboard, notifikasi, dan API lainnya. Pada tahun ini Konferensi pengembang Google I/O, Google mengumumkan API baru di Android Q yang sangat menarik bagi pengguna dan pengembang game seluler: AudioPlaybackCapture dan API Termal.

Merekam Audio Dari Aplikasi Lain Dengan AudioPlaybackCapture di Android Q

Game seluler adalah industri besar yang belum menunjukkan tanda-tanda akan melambat dalam waktu dekat, terutama di pasar seperti AS, Tiongkok, dan India. Dengan semakin banyaknya orang yang menghabiskan waktu menggunakan ponsel cerdas mereka untuk bermain game dan media sosial, tidak mengherankan jika orang-orang ingin berbagi pengalaman bermain game mereka secara online.

Android pada dasarnya telah mendukung pengambilan tangkapan layar sejak awal, namun pengambilan video dari layar hanya didukung sejak Android 5.0 Lollipop dengan diperkenalkannya API Proyeksi Media. Sayangnya, API ini tidak mengizinkan aplikasi pihak ketiga merekam output audio internal di aplikasi lain, memaksa perekam layar pihak ketiga untuk merekam output audio eksternal dari mikrofon perangkat (S). OEM seperti Samsung dan Huawei menyediakan aplikasi sistem untuk merekam output audio internal selama perekaman layar, tetapi satu-satunya cara bagi pemilik perangkat lain untuk merekam dengan benar output video dan audio dari perangkat mereka adalah dengan membeli A aksesori pihak ketiga. Untungnya, Google akhirnya memperkenalkan cara di Android Q untuk aplikasi pihak ketiga untuk merekam audio dari aplikasi lain.

AudioPlaybackCapture API dijelaskan oleh Google sebagai analog dari tangkapan layar, tetapi untuk perekaman audio. Meskipun sejauh ini satu-satunya aplikasi yang menggunakan API tersebut adalah milik Google Teks Langsung, alat aksesibilitas yang menambahkan teks ke video apa pun yang diputar di perangkat, API dokumentasi menyatakan bahwa tujuan utamanya adalah memungkinkan aplikasi streaming menangkap audio dimainkan dengan permainan. Bayangkan para gamer seluler mengalirkan sesi mereka ke layanan seperti Twitch atau YouTube. API ini dirancang untuk tidak memengaruhi latensi audio aplikasi yang audionya sedang direkam, menjadikannya sempurna untuk perekaman alur game sehingga audio dan video tidak tersinkronisasi.

Berbeda dengan masa-masa awal Android, pendekatan Google terhadap API baru lebih hati-hati. AudioPlaybackCapture hanya dapat digunakan jika aplikasi yang audionya sedang direkam dan aplikasi yang melakukan pengambilan memenuhi persyaratan tertentu. Berikut ringkasan persyaratan tersebut:

  • Agar audio aplikasi dapat direkam oleh aplikasi pihak ketiga, persyaratan berikut harus dipenuhi:
    • Aplikasi harus memiliki izinAudioPlaybackCapture yang disetel ke true atau tidak disetel di Manifesnya. (Setelan defaultnya adalah true untuk aplikasi yang menargetkan Android Q, namun dapat disetel secara manual untuk aplikasi yang menargetkan Android Pie.)
    • Aplikasi yang memproduksi audio harus memiliki jenis penggunaan audio USAGE_MEDIA, USAGE_GAME, atau USAGE_UNKNOWN.
    • Kebijakan pengambilan audio (setAllowedCapturePolicy) harus disetel ke ALLOW_CAPTURE_BY_ALL. Kebijakan ini dapat disetel saat runtime, namun pemutaran harus dimulai ulang agar perubahan kebijakan dapat diterapkan. Jika ALLOW_CAPTURE_BY_SYSTEM disetel, hanya aplikasi sistem yang dapat merekam audio (tetapi dibatasi di bahwa mereka tidak dapat menyimpan audio, meneruskannya ke aplikasi pihak ketiga, atau merekam pada > 16kHz 16-bit mono kualitas.)
  • Agar suatu aplikasi dapat merekam audio dari aplikasi lain, persyaratan berikut harus dipenuhi:
    • Aplikasi harus memunculkan perintah MediaProjectionManager.createScreenCaptureIntent dan pengguna harus menerimanya.
      Dialog konfirmasi yang dilihat pengguna saat aplikasi mencoba menangkap layar menggunakan MediaProjection API.
    • Aplikasi harus menampung SUARA REKAMAN izin.
    • Aplikasi harus berada dalam profil pengguna yang sama dengan aplikasi yang audionya akan direkam.

Saya membayangkan sebagian besar game mengizinkan audionya ditangkap oleh aplikasi yang menggunakan API baru ini, tetapi mungkin perlu beberapa saat agar game diperbarui agar dapat mendukungnya. Di sisi lain, jangan berharap aplikasi streaming musik atau video apa pun mendukung API ini untuk pihak ketiga karena masalah perizinan. Namun, batasan yang diberlakukan Google jika aplikasi menyetel kebijakan pengambilan audionya ke ALLOW_CAPTURE_BY_SYSTEM berarti bahwa pengembang aplikasi streaming musik dan video seharusnya setuju dengan mengaktifkan pengambilan audio oleh sistem untuk meningkatkan aksesibilitas.

Untuk membaca lebih lanjut tentang AudioPlaybackCapture API di Android Q, lihat halaman ini.

Memantau Pembatasan Dengan API Termal di Android Q

Pembatasan termal hampir seluruhnya dikelola oleh sistem tanpa masukan dari, atau bahkan pemberitahuan ke, aplikasi yang paling terkena dampak pembatasan. Jika sumber daya perangkat terlalu terbatas, sebagian besar perangkat akan membatasi kecepatan CPU dan GPU sehingga merugikan kinerja game Anda. Anda, sebagai pengembang game, tidak dapat melakukan apa pun kecuali memperingatkan pengguna sebelum mereka mengubah pengaturan apa pun tentang potensi dampak perubahan mereka terhadap kinerja.

Namun, dengan API Termal baru di Android Q, aplikasi dapat menerima callback untuk berbagai tahap pembatasan kinerja - memberikan pengembang berkesempatan untuk membantu mengurangi beban pada perangkat dengan mengurangi aktivitas yang memerlukan CPU, GPU, atau modem dalam jumlah besar penggunaan. Misalnya, sebuah game dapat secara dinamis mengurangi resolusi hingga perangkat tidak lagi mengalami pelambatan GPU, atau aplikasi Maps dapat menonaktifkan fitur yang disempurnakan seperti navigasi realitas tertambah untuk mengurangi beban pada CPU.

Untuk menggunakan API baru ini, aplikasi mendaftarkan pendengar di PowerManager (addThermalStatusListener) dan sistem mengirimkan aplikasi salah satu kode status termal berikut:

  • THERMAL_STATUS_NONE: "Tidak dalam pembatasan."
  • THERMAL_STATUS_LIGHT: "Pembatasan ringan di mana UX tidak terpengaruh."
  • THERMAL_STATUS_MODERATE: "Pembatasan sedang dimana UX tidak terlalu terpengaruh."
  • THERMAL_STATUS_SEVERE: "Pembatasan parah yang sebagian besar berdampak pada UX."
  • THERMAL_STATUS_CRITICAL: "Platform telah melakukan segalanya untuk mengurangi daya."
  • THERMAL_STATUS_EMERGENCY: "Komponen utama dalam platform dimatikan karena kondisi termal. Fungsionalitas perangkat akan terbatas."
  • THERMAL_STATUS_SHUTDOWN: "Perlu segera dimatikan.

Dukungan untuk Thermal API jelas membutuhkan Android Q, namun persyaratan lainnya adalah penambahan HAL baru. Google mengatakan perangkat Pixel di Android Q (artinya Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Piksel 3a, Dan Piksel 3a XL) mendukung Thermal API, namun Google sedang berupaya menambahkan dukungan untuk perangkat lain.

Baca lebih lanjut tentang API termal di sini.