1つのソースに複数バッファを割り当てて切り替えたい時は、
alSourceStop( ソースのID );
alSourcei( ソースのID, AL_BUFFER, 0 );
と停止してからバッファに0をセットして一度処理中のキューを空にする。
キューが空になってないとリークする事があるっぽい。
その後、
alBufferDataで新たに切り替えたいサウンドをセットすればよい。
セットしたサウンドはalBufferData内で別途確保されてコピー済みなのでfreeしてよい。