Загрузчик DirectMusic
Загрузчик в DirectMusic одвечает за загрузку аудио-содержимого. С его помощью вы можете загрузить файлы MIDI, файлы WAV, коллекции DLS и файлы сегментов DirectMusic. Как только вы сообщите, какой именно аудио-ресурс вам требуется загрузить, загрузчик выполнит всю необходимую работу и начнет потоковое чтение ресурса. Вам остается только выполнить воспроизведение аудиоданных!
Загрузчик использует единственный интерфейс с именем IDirectMusicLoader8. Возможно, вы удивляетесь почему в имени интерфейса DirectX 9.0 не стоит цифра 9? Дело в том, что по сравнению с 8 версией в DirectMusic не было сделано никаких существенных изменений. Большинство изменений были сделаны для увеличения быстродействия кода.
Интерфейс загрузчика содержит несколько методов, перечисленных в таблице 7.1.
| Таблица 7.1. Методы интерфейса IDirectMusicLoader8 | |
| Метод | Описание |
| CacheObject | Увеличивает счетчик ссылок объекта. Полезно использовать для предотвращения многократной загрузки объекта. |
| ClearCache | Очищает счетчик ссылок для объекта указанного типа. |
| CollectGarbage | Очищает неиспользуемые ссылки. |
| EnableCache | Включает автоматическое кэширование. Может также применяться для выключения автоматического кэширования. |
| EnumObject | Перечисляет объекты заданного типа. |
| GetObject | Возвращает объект. |
| LoadObjectFromFile | Загружает объект из файла. Это наиболее часто используемый метод, поскольку он отвечает за загрузку файлов WAV. |
| ReleaseObjectByUnknown | Освобождает ссылку на объект. |
| ReleaseObject | Освобождает ссылку на объект. |
| ScanDirectory | Выполняет поиск в каталоге файлов указанного типа. Кэширует результаты для перечисления. |
| SetObject | Позволяет установить атрибуты некорректного объекта. |
| SetSearchDirectory | Устанавливает путь к каталогу, в котором будет выполняться поиск аудиофайлов. |
Вот что можно сказать об интерфейсе загрузчика. Позже в этой главе я покажу как используются некоторые из перечисленных в таблице 7.1 методов.