クロスフェードするには?

解決


いはら  2005-09-15 06:25:53  No: 92246

現在mci関連のAPIを用いて音楽のプレーヤーを作成しています。
普通に1曲とか連続でとかの再生はできるようになりました。
次に、音量がクロスフェードして曲が変わるような機能を付けたい
と思っています。
単にフェードアウトならボリュームをタイマーとかで制御して
小さくすればいいのかなと思いますが、クロスフェードすると
なるとどのようにすれば良いのか方針が浮かんできません。
これを実現するための助言をいただけますでしょうか?
よろしくお願いします。

開発環境はVB6、WindowsXPです。


通ってみた  2005-09-15 06:54:07  No: 92247

mciって複数の音を同時に鳴らせたっけ?(私が使っていた頃はできなかったですが)

DirectShowを使えばできそうですね
DirectSoundなら間違いなくできますが、wavしか対応していない気がするし

やり方は単にタイマーでフェードアウトしながらフェードインするだけだから簡単ですよね?


我龍院忠太  2005-09-15 18:09:57  No: 92248

MicrosoftのWAVEMIX.DLLを使うと出来る。
http://www.compuphase.com/wavemix.htm


いはら  2005-09-16 05:58:37  No: 92249

情報ありがとうございます。

どちらにせよ、再生部分は作り直しということですね。
うむむ。。。

DirectShowが比較的楽そうでしたので、とりあえずDirectShowを使ってみようと思います。

DirectShowを使う場合、IMediaControlのインスタンスを2つ作成し
IBasicAudioインタフェースで独立して、それぞれインスタンスのボリューム
を調整するというやり方でできるんでしょうか?


いはら  2005-09-17 06:23:35  No: 92250

案ずるより生むが易しでした。
無事クロスフェードの機能を実装できました。

殆ど作り直しでしたが。
解決とします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加