Android Audio遇到播放無聲時的分析


    在Android Audio開發過程中,有遇到播放ringtone時無聲,但播放Music可以聽到聲音,關於無聲問題的分析,在此做個筆記,方便以后回顧。

 

分析方向:

1:在音量控制面板中確認該音頻流對應的Volume_index大小是否等於0;

2:若Volmue_index != 0時,看user space的logcat與kernel log中有無明顯的Audio Fail項,比如設備是否選擇正確以及對應的路徑是否有配通;

3:在hardware層,在audio_hw.cpp文件中的out_write函數中添加log,判斷是否有數據寫入(QCOM MSM8939);

4:通過dumpsys media.audio_policy命令來查看對應音頻流是否被mute住,若被mute,需要分析AudioPolicyManager.cpp文件;

5:看當前音源檔本身的音量是否為0;

 

    其中1與5之間的區別在於:在播放某音源檔時,在AudioTrack::set()函數里,先將音源數據的左右聲道的Volume設置為1.0,即為最大聲。而通過音量按鍵或則在VolumePanel中調節音量則是在最大音量基礎上做衰減操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM