對于X86 Android操作系統(tǒng)進行學(xué)習(xí)研究
X86 Android操作系統(tǒng)參數(shù)最終在s3c24xx_pcm_hw_params中修改DMA配置所用,Android錄音失真的相關(guān)解決辦法在這里給大家進行分享,因此可以在使用的過程當(dāng)中感受到趣味性和吸引力。
在設(shè)置界面,X86 Android操作系統(tǒng)擁有了更多的手機影子,例如手機存儲、關(guān)于手機等字樣的出現(xiàn),不難看的出來源于手機的血統(tǒng)。在對X86 Android操作系統(tǒng)使用之后,可以說用Google仍需努力來形容。Google所提倡的簡單實用的設(shè)計理念著實為上網(wǎng)本產(chǎn)品提供了另外一種解決方案。
至于需要努力的方向,從本次試用來看,例如在郵件收發(fā)過程中對于附件的支持不夠好。部分菜單依然是英文界面,對于國內(nèi)用戶使用起來略有不便。部分功能需要基于SIM卡進行操作。
這些期待只能留給更新版本的X86 Android操作系統(tǒng)來解決了。我們曾經(jīng)在一篇文章中為大家詳細介紹過有關(guān)Android多媒體錄制功能的一些實現(xiàn)方法。其中就包括對錄音的實現(xiàn)方法。
今天我們可以通過這篇文章介紹的內(nèi)容詳細了解Android錄音失真的具體解決方法,以幫助大家解決實際應(yīng)用中出現(xiàn)的問題。在6410+WM9714的Android平臺上測試MIC IN錄音功能,出現(xiàn)一個BUG。在該平臺聲音播放是完全正常的,但是錄音后再播放剛錄的聲音,會有失真。
同樣的錄音文件在電腦上播放也一樣,說明是Android錄音失真的問題。后來通過打印9714的寄存器,發(fā)現(xiàn)錄音頻率是8000HZ。放音頻率是44100HZ,這時基本上可以確定是由這個不匹配引起的。 我在Android代碼里:AudioHardwareALSA.cpp文件中的函數(shù)中設(shè)定采樣率,如下:
- AudioStreamInALSA::AudioStreamInALSA(AudioHardwareALSA *parent) :mParent(parent)
- { static StreamDefaults _defaults = { .................... sampleRate :
- AudioRecord::DEFAULT_SAMPLE_RATE, .................... }; }
但是重?zé)绦蚝蠼Y(jié)果仍然存在Android錄音失真這一問題,采樣率還是8000,似乎被其他地方把值覆蓋了。后來我試著把所有的采樣率8000的地方全都改成44100,結(jié)果仍然一樣是8000。到底是不是采樣率的原因引起的呢?
之后用X86 Android操作系統(tǒng)來錄音,前提是不能進入Android,否則音頻設(shè)備會被占用。結(jié)果錄得的聲音播放時仍然是同樣的效果,當(dāng)時估計這問題應(yīng)該跟Android上層沒有什么大的關(guān)系。
后來別人有試通過將播放速度加快一倍,就得到的正常的播放音,但問題是仍然不知從何處來解決這個問題。后來經(jīng)過臺灣同事的挖掘,改動錄音MIC IN的DMA SIZE解決了此次問題。改動列出如下,原因尚待分析。
但是重?zé)绦蚝蠼Y(jié)果仍然存在Android錄音失真這一問題,采樣率還是8000,似乎被其他地方把值覆蓋了。后來我試著把所有的采樣率8000的地方全都改成44100,結(jié)果仍然一樣是8000。到底是不是采樣率的原因引起的呢?
之后用arecord命令來錄音,前提是不能進入Android,否則音頻設(shè)備會被占用。結(jié)果錄得的聲音播放時仍然是同樣的效果,當(dāng)時估計這問題應(yīng)該跟Android上層沒有什么大的關(guān)系。
后來別人有試通過將播放速度加快一倍,就得到的正常的播放音,但問題是仍然不知從何處來解決這個問題。后來經(jīng)過臺灣同事的挖掘,改動錄音MIC IN的DMA SIZE解決了此次問題。改動列出如下,原因尚待分析。
【編輯推薦】