Загрузчик в 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 методов.