1. 程式人生 > >PCM檔案播放器

PCM檔案播放器

基於webrtc的音訊模組寫的一個測試demo,然後再把測試demo修改下拿來當做工具使用。在平時開發中總是需要播放各種各樣的pcm檔案,然後每次都需要修改demo來測試,各種麻煩,於是這個小工具就產生了。 1. 基於OpenSLES實現的 2. 支援單雙通道,預設單通道 3. 支援取樣率為8k、16k、32k、44k和48k,預設16k 4. 支援迴圈播放和單曲播放 通過讀取ELF檔案看出確實使用OpenSLES 0x00000001(NEEDED)Shared library:[libdl.so]0x00000001(NEEDED)Shared library:[liblog.so]0x00000001(NEEDED)Shared
library:[libOpenSLES.so]
0x00000001(NEEDED)Shared library:[libm.so]0x00000001(NEEDED)Shared library:[libc.so] 後續會新增上時間控制,感覺這個是有必要的。因為我裡面使用了環形快取區,所以會根據取樣率和通道的不同有相應的誤差,會有40ms ~ 480ms的音訊碼流存放在緩衝區而沒有放出來。 使用方式: usage:./audio_pcm_player [-h][-l][-s sample_rate][-c channels][-b bit_width] pcmFile-h this help message
-s sample rate (16000)-c channels (1)-b bit width (16)-l looped play (false) 例子: 播放通道為2,取樣率為48k的pcm檔案 $ ./audio_pcm_player -c 2-s 4800048000_16_2.pcm<filename is:48000_16_2.pcmsampleRate is:48000channels is:2bitwidth is:16looper play : false 播放通道為1,取樣率為32k的pcm檔案
$ ./audio_pcm_player
-s 3200032000_16_1.pcm
filename is:32000_16_1.pcmsampleRate is:32000channels is:1bitwidth is:16looper play : false 迴圈播放通道為2,取樣率為16k的pcm檔案 $ ./audio_pcm_player -c 2-l 16000_16_2.pcm filename is:16000_16_2.pcmsampleRate is:16000channels is:2bitwidth is:16looper play : true