0

我在使用 monogame 2.5 时遇到了一些声音问题

我的应用程序正在加载一组 png 并在渲染期间显示它。加载和渲染非常好而且很快,但是声音“非常慢”,并且充满了“故障”。似乎主线程没有足够的时间来处理声音。

深入研究代码,我发现了这种方法:

public override bool BeforeDraw(GameTime gameTime)        
{ 
// Update our OpenAL sound buffer pools 
soundControllerInstance.Update();            
if (IsPlayingVideo)                return false;
            return true;        
}

所以,我认为这个方法必须被称为 1/33 s。

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

当然,我尝试使用后台工作者,但由于我需要一个Texture2D实例,由于OpenGL上下文,我必须在主线程中加载它。

我试图在后台工作人员中加载图像,并Texture2D在主线程中创建,但这并没有解决问题。

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

4

1 回答 1

-1

好吧,问题是我GC.Collect()每次更改纹理时都会调用,而且,正如我所见,这个方法会阻塞一切(包括音频!!)

我已经删除了GC.Collect(),现在它工作正常!!!

于 2013-02-02T14:07:09.317 回答