Framework Kualitas Media diperkenalkan di Android 16 untuk Android TV dengan tujuan membuat API standar untuk penyesuaian Kualitas Gambar (PQ) dan Kualitas Audio (AQ). Tujuan utamanya adalah menyediakan pendekatan terpadu untuk penyesuaian ini di berbagai perangkat Android TV. Framework standar ini bertujuan untuk menyederhanakan pengembangan bagi developer aplikasi, produsen peralatan asli (OEM), dan vendor system-on-chip (SoC) dengan menawarkan serangkaian Android API yang konsisten. Khusus untuk vendor SoC, fitur ini memungkinkan framework Android menangani konfigurasi PQ dan AQ, sehingga mengurangi overhead kolaborasi dengan berbagai developer aplikasi.
Pada akhirnya, untuk platform Google dan Android, hal ini membantu mengurangi fragmentasi, meningkatkan kualitas dan skalabilitas, menyediakan fitur baru, serta meletakkan dasar untuk UI AQ/PQ Terpadu dan pengalaman pengguna yang lebih baik.
Framework Kualitas Media mendukung berbagai kasus penggunaan untuk meningkatkan pengalaman menonton TV. Perlu diperhatikan bahwa profil dan setelan dapat dikelola per nama paket (aplikasi), dan per ID input. Selain itu, profil dapat dibuat oleh aplikasi sistem, atau oleh aplikasi lain yang ada dalam daftar yang diizinkan. Profil hanya dapat diperbarui atau dihapus oleh pemilik profil. Secara khusus, framework mengelola Profil Gambar dan Suara. Contoh parameter gambar mencakup kecerahan, kontras, ketajaman. Contoh parameter suara mencakup bass dan treble. Profil ini dapat diterapkan dalam berbagai konteks, termasuk menetapkan profil default global, profil streaming melalui MediaCodec, menetapkan profil default aplikasi untuk aplikasi media tertentu, dan menetapkan profil gambar input TV untuk input tertentu seperti HDMI. Framework ini juga mendukung perubahan status, sehingga memungkinkan kumpulan parameter yang berbeda untuk status seperti HDR, mengelola profil gambar aktif untuk pemrosesan yang sedang berlangsung, dan menangani fitur lampu latar sekitar.
Tim Android bekerja sama dengan partner ekosistem kami untuk mendukung framework Kualitas Media.
Komponen
Media Quality Framework terdiri dari beberapa komponen utama yang bekerja sama di seluruh lapisan aplikasi, framework, dan hardware.

Gambar 1. Interaksi antara komponen Media Quality Framework
- Pengelola Kualitas Media (SDK API): SDK API yang menghadap aplikasi yang memungkinkan aplikasi mengelola profil gambar dan suara.
- Layanan Kualitas Media: Layanan sistem yang berisi logika bisnis inti, mengelola profil, izin, dan komunikasi dengan HAL.
- Database Kualitas Media: Database SQLite yang menyimpan semua profil gambar dan suara.
- Kontrak Kualitas Media: Menentukan parameter dan struktur data standar yang digunakan untuk komunikasi antara aplikasi dan framework.
- HAL Kualitas Media: Hardware Abstraction Layer yang diterapkan vendor SoC untuk mengomunikasikan perubahan profil gambar dan suara ke hardware yang mendasarinya.
Fitur
Media Quality Framework mendukung berbagai fitur untuk menyediakan sistem yang fleksibel dan canggih untuk mengelola kualitas media.
Pengelolaan Profil
- Profil yang dikelola aplikasi: Aplikasi dapat membuat, memperbarui, dan menghapus profilnya sendiri untuk mendapatkan pengalaman yang disesuaikan.
- Profil default: Aplikasi sistem dapat menyetel profil default untuk aplikasi atau input TV tertentu (misalnya, HDMI 1).
- Profil default global: Profil penggantian seluruh sistem yang diterapkan saat tidak ada profil tertentu yang ditetapkan.
Alur Kerja Keseluruhan
Diagram berikut mengilustrasikan urutan panggilan untuk operasi kualitas media umum.
Membuat dan Menerapkan Profil Gambar

Gambar 2. Diagram urutan untuk membuat profil gambar
- Aplikasi sistem memanggil
setPictureProfileAllowList()untuk memberikan izin kepada aplikasi media agar dapat membuat profil. - Aplikasi media mendaftarkan
PictureProfileCallbackuntuk menerima notifikasi tentang perubahan profil. - Aplikasi media memanggil
createPictureProfile()dengan objekPictureProfile. MediaQualityServicememproses permintaan, menyimpan profil ke database, dan memberi tahu aplikasi tentang keberhasilan atau kegagalan melalui callback terdaftar (onPictureProfileAdded()atauonError()).
Menyetel Profil Gambar Per-Streaming
Alur kerja ini menunjukkan cara aplikasi dapat menerapkan profil tertentu ke konten videonya selama pemutaran.

Gambar 3. Diagram urutan untuk menyetel profil gambar per-streaming
- Aplikasi media membuat kueri
MediaQualityManageruntuk mendapatkan daftar profil gambar yang tersedia. - Kemudian, aplikasi menggunakan
MediaCodec.setParametersuntuk memilih dan menetapkan profil yang diinginkan untuk streaming. - Framework mengomunikasikan pilihan ini ke HAL Kualitas Media (MQ), dengan meneruskan ID profil dan parameternya.
- Terakhir, MQ HAL mengirimkan parameter ini ke Composer HAL, yang merender streaming video dengan profil gambar yang ditentukan.
Menetapkan Profil Default Global
Hanya aplikasi sistem yang dapat menyetel profil default global, yang berfungsi sebagai penggantian untuk konten apa pun yang tidak memiliki profil tertentu yang ditetapkan.
- Aplikasi sistem mengambil daftar profil gambar yang tersedia dari framework.
- Kemudian, aplikasi memilih salah satu profil ini untuk menjadi default global baru dengan memanggil
setDefaultPictureProfile(id). - Framework mengirimkan parameter profil tersebut ke HAL Kualitas Media, yang kemudian menerapkan perubahan.
Media Quality SDK API
API Media Quality SDK menyediakan alat yang diperlukan bagi aplikasi untuk berinteraksi dengan framework. Titik entri utama adalah paket android.media.quality.
android.media.quality
Paket ini berisi class utama untuk mengelola kualitas media.
| Class | Deskripsi |
|---|---|
MediaQualityManager |
Class pusat untuk berinteraksi dengan MQF. |
PictureProfile |
Class data yang merepresentasikan kumpulan lengkap parameter gambar untuk mode tertentu. |
SoundProfile |
Class data untuk parameter suara. |
MediaQualityContract |
Class yang berisi konstanta untuk semua kunci parameter yang telah ditentukan sebelumnya. |
MediaQualityManager
Metode utamanya meliputi:
| Metode | Deskripsi |
|---|---|
createPictureProfile(PictureProfile profile) |
Membuat profil gambar baru. Memerlukan izin khusus atau agar aplikasi berada dalam daftar aplikasi yang diizinkan. |
updatePictureProfile(PictureProfile profile) |
Memperbarui profil gambar yang ada. Hanya dapat dipanggil oleh pembuat profil. |
removePictureProfile(String profileId) |
Menghapus profil. Hanya dapat dipanggil oleh pembuat profil. |
getAvailablePictureProfiles() |
Menampilkan daftar semua profil gambar yang tersedia. |
setDefaultPictureProfile(String profileId) |
Menetapkan profil gambar default global. Memerlukan izin MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE. |
registerPictureProfileCallback(PictureProfileCallback cb) |
Mendaftarkan callback untuk memproses perubahan profil. |
Objek PictureProfile
Objek PictureProfile merangkum semua informasi untuk mode gambar tertentu.
public final class PictureProfile {
private String id;
private int type; // System or Application
private String name; // e.g., "Movie", "Game"
private String inputId; // e.g., "HDMI1"
private String packageName; // e.g., "com.google.android.youtube"
private PersistableBundle parameters; // Bundle containing all PQ parameters
}
HAL Kualitas Media
HAL Kualitas Media adalah antarmuka berbasis AIDL yang ditentukan dalam hardware/interfaces/tv/mediaquality/aidl/. Vendor SoC harus menerapkan antarmuka ini untuk mengaktifkan Media Quality Framework di perangkat mereka. HAL berfungsi sebagai jembatan komunikasi antara MediaQualityService di framework Android dan hardware yang mendasarinya, yang bertanggung jawab untuk menerapkan penyesuaian gambar dan suara.
HAL mengelola profil gambar dan suara menggunakan parcelable AIDL. Hal ini melibatkan penerimaan perubahan profil dari framework dan memberi tahu framework tentang penyesuaian yang dilakukan di tingkat hardware.
Modul
Antarmuka HAL terdiri dari beberapa file AIDL utama:
| File HAL | Deskripsi |
|---|---|
IMediaQuality.aidl |
Antarmuka utama untuk layanan Kualitas Media, yang digunakan untuk menyetel pemroses dan menemukan kemampuan hardware. |
IPictureProfileChangedListener.aidl |
Antarmuka pendengar yang digunakan framework untuk memberi tahu HAL (khususnya, komponen seperti composer HAL) tentang perubahan pada profil gambar. |
IPictureProfileAdjustmentListener.aidl |
Antarmuka pendengar yang digunakan HAL untuk memberi tahu framework tentang penyesuaian yang dilakukan di tingkat hardware, misalnya, saat pengguna mengubah setelan secara langsung melalui remote hardware. |
PictureParameter.aidl |
Gabungan AIDL yang menentukan semua parameter gambar standar, seperti kontras dan ketajaman, yang dapat disesuaikan. |
PictureProfile.aidl |
Parcelable AIDL yang merepresentasikan objek PictureProfile di lapisan HAL, yang berisi ID profil dan parameter terkaitnya. |
ISoundProfileChangedListener.aidl |
Antarmuka pendengar yang digunakan framework untuk memberi tahu HAL tentang perubahan pada profil suara. |
ISoundProfileAdjustmentListener.aidl |
Antarmuka pemroses yang digunakan HAL untuk memberi tahu framework tentang penyesuaian suara yang dilakukan di tingkat hardware. |