桂林景區(qū)網(wǎng)站建設(shè)策劃方案如何建立獨立網(wǎng)站
MixerThread 是 Android 音頻輸出的核心部分,主要負責(zé)將多個音頻流混合成一個輸出流,通常用于處理多個音頻源(如音樂播放器、語音通話、系統(tǒng)提示音等)的混音操作,混音后的音頻數(shù)據(jù)會被發(fā)送到音頻硬件(如揚聲器或耳機)進行最終輸出。大多數(shù) Android 的音頻都需要經(jīng)過 MixerThread 進行混音后再輸出到音頻設(shè)備。
一、混音線程創(chuàng)建
混音線程 MixerThread 繼承 PlaybackThread。在PlaybackThread中,重寫了 Thread 的 threadLoop、onFirstRef 等方法,因此在調(diào)用 MixerThread 這些方法時,實際上就是調(diào)用了 PlaybackThread 的對應(yīng)方法。
1、onFirstRef
源碼位置:/frameworks/av/services/audioflinger/Threads.cpp
在 getOutput 的時候,我們創(chuàng)建了一個 MixerThread 對象,由于這個對象繼承于 Thread,因此在創(chuàng)建對象時,會調(diào)用它的 onFirstRef 函數(shù)。
void AudioFlinger::PlaybackThread::onFirstRef()
{……run(mName, ANDROID_PRIORITY_URGENT_AUDIO);
}