マルチスレッドで音声再生しようとして困ったときのメモ。
最初はここで紹介されていたSmallBasicLibrary.dllで音声再生処理をしていたんだけど、あるスレッドでSound.Playをした後に別のスレッドでSound.Playをしようとすると、オブジェクトが占有されている的なExceptionが出てしまった。何らかの初期化が必要なのかなと思ったけどそのあたりのAPIはちょっとわからず、代案としてStaticなクラスの関数に入れてもみたけどやっぱりダメだった。
ということで、結局ここに書かれていた、MCIを使う形で対応したのでした。
SmallBasicLibrary.dllはおそらくシングルスレッドなら全く問題なく動くと思うので、用途によっては積極的に利用すべきだなーという印象。