我開始使用FMOD庫,因爲我需要在C#應用程序中無間隙地播放聲音(循環中的一個聲音和序列中的許多聲音)。任何人都可以告訴我正確的方法嗎?我嘗試了基於示例做出一些事情,但它不工作,因爲我希望它能夠工作。 首先,當我嘗試設置,如果聲音循環播放,在影片播放,FMOD無間斷循環和序列播放
if (value)
sound1.setMode(FMOD.MODE.LOOP_NORMAL);
else
sound1.setMode(FMOD.MODE.LOOP_OFF);
沒有是怎麼回事。在我開始播放之前,當我設置th模式時,它只能正常工作。
第二個問題是:我怎麼能通知聲音已達到結束?我試圖做這樣說:
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;
}
但也只能達到這個回調時,我手動調用停止()的通道,軌道末端而不是當。
或者最終你知道任何其他圖書館,可以輕鬆地給我我需要什麼嗎?我選擇了FMOD,因爲它非常流行,但我不喜歡它的老式C++ - 比如編碼方式(沒有事件,沒有例外等)。