現在mci関連のAPIを用いて音楽のプレーヤーを作成しています。
普通に1曲とか連続でとかの再生はできるようになりました。
次に、音量がクロスフェードして曲が変わるような機能を付けたい
と思っています。
単にフェードアウトならボリュームをタイマーとかで制御して
小さくすればいいのかなと思いますが、クロスフェードすると
なるとどのようにすれば良いのか方針が浮かんできません。
これを実現するための助言をいただけますでしょうか?
よろしくお願いします。
開発環境はVB6、WindowsXPです。
mciって複数の音を同時に鳴らせたっけ?(私が使っていた頃はできなかったですが)
DirectShowを使えばできそうですね
DirectSoundなら間違いなくできますが、wavしか対応していない気がするし
やり方は単にタイマーでフェードアウトしながらフェードインするだけだから簡単ですよね?
MicrosoftのWAVEMIX.DLLを使うと出来る。
http://www.compuphase.com/wavemix.htm
情報ありがとうございます。
どちらにせよ、再生部分は作り直しということですね。
うむむ。。。
DirectShowが比較的楽そうでしたので、とりあえずDirectShowを使ってみようと思います。
DirectShowを使う場合、IMediaControlのインスタンスを2つ作成し
IBasicAudioインタフェースで独立して、それぞれインスタンスのボリューム
を調整するというやり方でできるんでしょうか?
案ずるより生むが易しでした。
無事クロスフェードの機能を実装できました。
殆ど作り直しでしたが。
解決とします。
ツイート | ![]() |