Audio 单游戏声音故障

Audio 单游戏声音故障,audio,monogame,Audio,Monogame,我在使用Monogame2.5时遇到了一些声音问题 我的应用程序正在加载一组PNG并在渲染期间显示。加载和渲染速度相当快,但声音“非常慢”,充满了“小故障”。主线程似乎没有足够的时间来处理声音 深入研究代码,我发现了以下方法: public override bool BeforeDraw(GameTime gameTime) { // Update our OpenAL sound buffer pools soundControllerInstance.Update();

我在使用Monogame2.5时遇到了一些声音问题

我的应用程序正在加载一组PNG并在渲染期间显示。加载和渲染速度相当快,但声音“非常慢”,充满了“小故障”。主线程似乎没有足够的时间来处理声音

深入研究代码,我发现了以下方法:

public override bool BeforeDraw(GameTime gameTime)        
{ 
// Update our OpenAL sound buffer pools 
soundControllerInstance.Update();            
if (IsPlayingVideo)                return false;
            return true;        
}
因此,我假设这个方法必须被称为1/33s

问题是我必须每隔1/12秒加载一个新图像,这个过程非常耗时,并且会停止主线程

当然,我尝试过使用后台工作程序,但是由于OpenGL上下文的原因,我需要一个Texture2D实例,所以我必须在主线程中加载它

我曾尝试在后台工作程序中加载图像,并在主线程中创建纹理2D,但这并不能解决问题


哦,我的声音是mp3声音,但我用wav测试过,没有结果!!:

问题是,我每次更改纹理时都调用GC.Collect,正如我所看到的,这个方法会阻止所有包含的音频


我已经删除了GC。收集,现在工作正常

为什么必须每1/12秒加载一个新映像?我觉得很奇怪你会做这样的事。我希望在主渲染开始之前预加载所有资源。因为我必须使用alpha播放视频,我发现唯一“好”的解决方案是加载、显示和处理。调用GC.Collect通常是个坏主意。GC很好地自动完成了它最擅长的工作。