我正在尝试克隆SecondaryBuffer
,以便可以同时多次播放相同的声音。
这是我正在使用的代码: 在主线程中:
Device sounddevice = new Device();
sounddevice.SetCooperativeLevel(this, CooperativeLevel.Normal);
BufferDescription description = new BufferDescription();
description.ControlEffects = false;
SecondaryBuffer buffer = new SecondaryBuffer(file, description, sounddevice);
在不同线程上运行的函数中:
SecondaryBuffer buffer2 = buffer.Clone(sounddevice);
buffer2.Play(0, BufferPlayFlags.Default);
这是我在Clone
函数上遇到的异常:
Microsoft.DirectX.DirectSound.dll 中出现“System.AccessViolationException”类型的未处理异常
附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。
有人有解决方案吗?