android音量控制曲線和調用過程

來源:互聯網
上載者:User

Android音頻曲線調用從ui介面往下設定,根據stream音頻有不同的UI,分為7步,15步,對應到實際的100步。這個轉換過程可以參考AudioPolicyManagerBase.cpp中的volIndexToAmpl函數。   4.1上調用流程與之前的有所不同,原理還是一樣的。之前的版本我看是直線型的,新的是3段折線的。為什麼是直線,人耳對聲音大小的感知程度並不是線性,而是呈對數關係。這個可以和android原理對應起來 以10為底的對數。 下面是分貝公式的推導過程      音頻當中db用加減表示調整音量大小。 目前採用3段折線,我覺得可以更方便的調整聲音在不同地區的變化大小。最低聲音和最高聲音應該需要從更底層驅動來調整。 volIndexToAmpl這個函數實現了上面的轉換關係。 該函數是通過響應音量鍵效益開始執行下面調用過程,完成音量大小調節的。 下面是音量鍵按下後的調用過程 Audiomanager.java handleKeyDown          adjustSuggestStreamVolume                     service. adjustSuggestStreamVolume AudioService.java adjustSuggestStreamVolume          adjustStreamVolum          sendMSG(mAudioHandler,MSG_SET_DEVICE_VOLUME,SND_QUEUE,device,0,streamstate,0); 訊息機制 AudioService.java AudioHandler handleMessage          setDeviceVolume                    StreamState.applyDeviceVolume                             audioSystem.setStreamVolumeIndex JNI機制 Android_media_AudioSystem.cpp AudioPolicyManagerBase.cpp setStreamVolumeIndex          checkAndSetVolume                    computeVolume                             volIndexToAmpl

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.