AOQ Client SDK mendukung pemutaran audio kustom. Melalui mekanisme callback frame audio, data PCM yang telah didekode dikirimkan ke lapisan aplikasi sehingga Anda dapat mengimplementasikan logika rendering audio sendiri.
Ikhtisar
Secara default, AOQ Client SDK memutar data audio remote yang diterima melalui speaker sistem atau earpiece. Namun, dalam beberapa skenario, modul pemutaran audio bawaan SDK mungkin tidak memenuhi kebutuhan Anda. Pemutaran audio kustom berguna ketika Anda perlu:
- Mengarahkan output data audio yang diterima ke perangkat pemutaran kustom atau pipeline pemrosesan audio.
- Memproses ulang data audio yang diterima—misalnya, untuk pengenalan ucapan berbasis AI atau efek audio.
- Mengatasi konflik perangkat pemutaran audio.
Kode contoh
Segera hadir.
Prasyarat
- Sebuah instans engine telah dibuat dengan memanggil
createEngine. - Koneksi ke server telah terjalin (callback
onConnectionStatusChangetelah melaporkanAoqConnectionStatusConnected).
Implementasi
1. Mulai pemutaran audio dalam mode eksternal
Saat memanggil startAudioPlayer, atur isExternal=true untuk menonaktifkan perangkat rendering audio internal SDK. Lapisan aplikasi kemudian bertanggung jawab atas pemutaran audio tersebut.
Parameter | Type | Default | Description |
|---|---|---|---|
isVoipMode | boolean | false | Apakah mode VoIP diaktifkan (AEC perangkat keras). Berlaku pada perangkat mobile. |
isDefaultSpeaker | boolean | true | Apakah speaker digunakan secara default. Berlaku pada perangkat mobile. |
isExternal | boolean | false | Apakah mode pemutaran eksternal digunakan. Jika true, SDK tidak membuka perangkat pemutaran. |
channel | int | 1 | Jumlah channel |
2. Atur pendengar callback frame audio
Panggil setAudioFrameObserver untuk mendaftarkan listener callback data frame audio. Implementasikan metode callback onPlaybackAudioFrame guna menerima data PCM pemutaran.
3. Aktifkan callback data pemutaran
Panggil enableAudioFrameObserver untuk mengaktifkan callback frame audio pada posisi pemutaran. Tentukan sumber data sebagai AoqAudioSourcePlayback.
Parameter | Type | Default | Description |
|---|---|---|---|
sampleRate | int | 48000 | Laju sampel audio callback (Hz) |
channels | int | 1 | Jumlah channel audio callback |
mode | AoqAudioObserverMode | AoqAudioObserverModeReadOnly | Mode baca/tulis |
4. Implementasikan rendering audio kustom
Ketika data PCM tiba dalam callback onPlaybackAudioFrame, lapisan aplikasi menangani rendering dan pemutaran. Pendekatan umum meliputi:
- Android AudioTrack: Tulis data PCM ke perangkat audio sistem menggunakan AudioTrack.
- Pengenalan ucapan AI: Teruskan data PCM ke mesin ASR untuk pengenalan ucapan.
- Efek audio: Terapkan efek audio pada data PCM sebelum diputar.
- Penyimpanan file: Simpan data audio yang diterima ke file lokal.
- Callback
onPlaybackAudioFramedijalankan pada thread internal SDK.frame.dataPtrhanya valid selama callback berlangsung. Jika Anda perlu menggunakan data tersebut secara asinkron, salin terlebih dahulu. AudioTrack.writemerupakan operasi blocking. Menulis langsung di dalam callback tidak masalah karena SDK mengirimkan callback pada laju yang terkendali.- Pertahankan flag
mPlayRunningagar Anda dapat menghentikan pemrosesan saat engine keluar atau pemutaran dihentikan.