C# アプリケーションで音を途切れなく再生する必要があるため (ループ内の 1 つの音とシーケンス内の複数の音の両方)、FMOD ライブラリを使用し始めました。誰でも正しい方法を教えてもらえますか? 例に基づいて何かを作成しようとしましたが、機能したいように機能しません。まず、再生中に音をループさせるかどうかを設定しようとすると、
if (value)
sound1.setMode(FMOD.MODE.LOOP_NORMAL);
else
sound1.setMode(FMOD.MODE.LOOP_OFF);
何も起こっていません。再生を開始する前に、モードを設定した場合にのみ正常に動作します。
2 番目の問題は、サウンドが最後に達したことをどのように通知できるかということです。私はこのようにしようとしました:
channel.setCallback(eofCallback);
ここで、eofCallback は SoundEndCallback への参照です
private FMOD.RESULT SoundEndCallback(IntPtr channelraw, FMOD.CHANNEL_CALLBACKTYPE type, IntPtr commanddata1, IntPtr commanddata2)
{
FMOD.RESULT result;
if (type == FMOD.CHANNEL_CALLBACKTYPE.END)
{
//logic here
}
return FMOD.RESULT.OK;
}
しかし、このコールバックは、トラックが終了したときではなく、チャネルで手動で stop() を呼び出したときにのみ到達します。
または、最終的に、必要なものを簡単に提供してくれる他のライブラリを知っていますか? 私は FMOD を選びました。これは非常に人気があるためですが、昔ながらの C++ のようなコーディング方法 (イベントなし、例外なしなど) は好きではありません。