gpt4 book ai didi

c# - FMOD 无缝循环和序列播放

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:42 35 4
gpt4 key购买 nike

我开始使用 FMOD 库,因为我需要在 C# 应用程序中播放没有间隙的声音(循环中的一个声音和序列中的许多声音)。谁能告诉我正确的方法吗?我尝试根据示例制作一些东西,但它没有像我希望的那样工作。首先,当我尝试设置声音是否循环播放时,

if (value)  
sound1.setMode(FMOD.MODE.LOOP_NORMAL);
else
sound1.setMode(FMOD.MODE.LOOP_OFF);

什么都没有发生。只有在我开始播放之前设置模式时,它才能正常工作。

第二个问题是:如何通知声音播放结束?我试着这样做:

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;
}

但只有当我在 channel 上手动调用 stop() 时才会到达此回调,而不是在轨道结束时。

或者您最终是否知道任何其他图书馆可以轻松满足我的需求?我选择了 FMOD,因为它很受欢迎,但我不喜欢它老派的 C++ 式编码方式(无事件、无异常等)。

最佳答案

我对我的第二个问题有了答案:要得到通知,你必须首先像前面提到的那样设置回调,然后你必须使用 System.update() 方法(它必须在循环中定期调用).这是一种投票,

关于c# - FMOD 无缝循环和序列播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336159/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com