gpt4 book ai didi

C#音乐/声音同步

转载 作者:行者123 更新时间:2023-12-03 00:57:02 29 4
gpt4 key购买 nike

我正在 XNA 中创建一个游戏,它可以使用大量的音乐循环,但我似乎无法同步这些声音。

我总是错过几毫秒你能帮我吗?

这是我第一次尝试同步声音。请注意,我需要处理数十种声音......

这个同步问题可能与缓存声音有关吗?

是否有外部库使其更容易?

    public SoundEffectInstance loop1, loop2;
public int auxControl = 0;
public bool auxB = false, auxA = false;

public void LoadContent()
{
SoundEffect temp1 = Game.Content.Load<SoundEffect>("sounds/Synctest_1");

loop1 = temp1.CreateInstance();
loop1.IsLooped = true;

loop2 = temp1.CreateInstance();
loop2.IsLooped = true;
}

public override void Update(GameTime gameTime)
{
// start first sound
if (auxA == false)
loop1.Play(); auxA = true;

// start counting until 2 seconds
if (auxA)
auxControl += gameTime.ElapsedGameTime.Milliseconds;

// if 2 seconds have passed after first sound start second sound
if (auxControl >= 2000 && auxB == false)
{
loop2.Play();
auxB = true;
}

base.Update(gameTime);
}

谢谢你

最佳答案

对 C# 一无所知,但如果 API 不支持,通常很难以毫秒精度同步这些东西。解决方案是自己混合它们并仅将 API 用于播放,这样您就可以准确控制它们何时播放以及它们如何组合。

C# 中可能有更简单的解决方案,但您可以使用 http://www.PortAudio.com 构建类似的解决方案或许多其他接口(interface)。您可能想在 google 上搜索类似 Game audio API 的内容。

关于C#音乐/声音同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574107/

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