Я пытаюсь клонировать 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
:
Произошло необработанное исключение типа «System.AccessViolationException» в Microsoft.DirectX.DirectSound.dll
Дополнительная информация: Попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена.
У кого-нибудь есть решение для этого?