I was in need of ALSA and honestly, I'd just few testing style programming of it long before.
It need to take wav file as input and do a playback of that file using ALSA. However, I need to learn it form scratch, though to find any suitable example according how I can handle wav file to send as ALSA PCM playback, was difficult.
So I wish to write some explanation of it here, and will try to exclude those what you can find and learn by a short googling.
Below part, I presume you already know, or if you don't, I found -
http://www.linuxjournal.com/article/6735?page=0,0
is the best and most informative.