我目前使用下面的代碼(C#):無縫(循環)音頻播放支持DirectX在C#
private static void PlayLoop(string filename)
{
Audio player = new Audio(filename);
player.Play();
while (player.Playing)
{
if (player.CurrentPosition >= player.Duration)
{
player.SeekCurrentPosition(0, SeekPositionFlags.AbsolutePositioning);
}
System.Threading.Thread.Sleep(100);
}
}
此代碼的工作,和我打的循環的文件。但是,顯然,每個回放之間有一個小的差距。
- 我試着減少Thread.Sleep到10或5,但差距仍然存在。
- 我也嘗試完全刪除它,但CPU使用率提高到100%,並且還有一個小差距。
是否有任何(簡單)方法在DirectX無間隙中進行回放?這不是一個大問題,因爲它只是一個個人項目,但如果我做了一些愚蠢的或其他完全錯誤的事情,我很想知道。
在此先感謝。