2

我正在尝试克隆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”类型的未处理异常

附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

有人有解决方案吗?

4

0 回答 0