安裝套件
sudo apt-get install pulseaudio pulseaudio-utils sudo apt-get install mplayer sudo apt-get install libmpg123-dev mpg123
動態切換HDMI or jack輸出
amixer cset numid=3 n n is 0=auto, 1=headphones, 2=hdmi.
測試音源方法
aplay /usr/share/sounds/alsa/Front_Center.wav
執行mplayer + pulseaudio時發生的問題
1. 撥放音樂時會卡
修改/etc/pulse/default.pa
The newer implementation of the PulseAudio sound server uses timer-based audio scheduling instead of the traditional, interrupt-driven approach.
tsched = 0,代表改回interrupt driven
load-module module-udev-detect tsched=0
Reference PulseAudio FAQ
https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Audio_quality
Pulseaudio load module reference:
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index62h3
https://www.lightbluetouchpaper.org/2013/02/10/fixing-poppingclicking-audio-on-raspberry-pi/
其實中間還有看到別的資料,有看到DBus, 或是跟load module有關等等的,有都做實驗但都沒法解決頓頓的問題
只要加了"tsched=0" 其他應該都不用改
2. 每次播放前會有點點的聲音
mplayer -cache 1024
有些改善,但還是會有點點的聲音
改用mpg123 lib 後好一點 但連續多次撥放最後會卡住
mplayer -cache 1024 -afm mp3lib
最後改成這樣在raspeberry2上執行還算ok
mplayer -cache 8196 -really-quiet -framedrop -af lavcresample=48000
3. 開一個mplayer撥mp3,同時開另一個mplayer撥不同的mp3,但一直開開關關的,最後原本的mplayer會無法撥放
依據http://raspberrypi.stackexchange.com/questions/9795/pulseaudio-sink-stuttering
修改/etc/pulse/default.pa
load-module module-udev-detect tsched=0 tsched_buffer_size=1048576 tsched_buffer_watermark=262144
測試幾次還ok...
2015/5/16測試,發現可以運作是因為pulseaudio看不懂"tsched_buffer_size=1048576 tsched_buffer_watermark=262144"這個參數,所以pulseaudio沒有運作,mplayer是直接調用alsa當音源輸出。所以才沒有卡住! 但這樣的實驗,看來RPI2的ALSA可以混音
Reference
https://linuxacademy.com/blog/linux/tutorial-playing-around-with-mplayer/