Windows Forms dotnet . WAV воспроизведения - необходимо предварительно загрузить несколько файлов WAV в память для быстрого воспроизведения

Мне нужно воспроизвести 30-секундные аудиоклипы, по 1 в секунду, в winnets dotnet. В настоящее время я загружаю / играю файлы wav из файловой системы, которая отлично работает на ноутбуке, но вызывает проблемы на нетбуке. Могу ли я предварительно загрузить все звуковые файлы в память, если да, то как?

3 ответа

Если вы используете SoundPlayer для воспроизведения ваших файлов, вы можете предварительно загрузить файл с SoundPlayer.Load,

SoundPlayer sp = new SoundPlayer("filename");
sp.Load(); // preload
sp.Play();

Редактировать:
Как отмечено в документации, вы также можете использовать SoundPlayer.LoadAsync загрузить звук в фоновом режиме.

Я склонен сказать, что вы загрузите файл в какой-нибудь поток system.io.memory. Надеемся, что библиотеки, которые воспроизводят ваш файл, будут занимать поток памяти или поток памяти, который может быть преобразован в структуру данных, которую принимает эта библиотека.

Вот недавний пример, который создает файл WAV (синус) в памяти полностью с нуля и воспроизводит его. То, что вы пытаетесь сделать, должно быть намного проще, и вы должны быть в состоянии вывести его из опубликованного примера.

Реальный низкий уровень генерации звука в C#?

Другие вопросы по тегам