使用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秒。
问题是我必须每隔1/12加载一个新图像,这个过程非常耗时并且会停止主线程。
当然,我已经尝试使用后台工作程序,但由于我需要一个Texture2D
实例,由于OpenGL
上下文,我必须在主线程中加载它。
我尝试在后台工作程序中加载图像,并在主线程中创建Texture2D
,但它无法解决问题。
哦,我的声音是一个mp3声音,但我用wav测试过,没有结果! :(
答案 0 :(得分:-1)
嗯,问题是我每次更改纹理时都在调用GC.Collect()
,而且正如我所看到的,此方法会阻止一切(包括音频!!)
我删除了GC.Collect()
,现在它正常工作!!!