Попытка клонировать SecondaryBuffer, но получила исключение MemoryAccessViolation - PullRequest
2 голосов
/ 28 марта 2011

Я пытаюсь клонировать 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

Дополнительная информация: Попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена.

У кого-нибудь есть решение для этого?

...