Интернет магазин музыки, mp3 почтой, заказать mp3 диски

баннер интернет-магазина ножей nifovka.ru

RSS - RSS,
Карта сайта

Rambler's Top100

Написать на e-mail © 2007-2012 г.

что такое файл подкачки



Теги страницы:

Внесение Play метода внутрь CSound потребовало от меня открытия интерфейса Performance. Вот почему у CAudioManager есть интерфейс Get Perform а псе, Объект CSound использует этот метод, затем вызывает PSaySegment, передавая свой собственный m_Segment. Главное в этом методе - это вызов PlaySegment. Для того чтобы заставить играть сегмент, вы должны обеспечить интерфейс Performance сегментом, который должен быть воспроизведен (m_Segment), любыми флагами, которые вам нужны (никакими в этом случае), и временем, когда начинать воспроизведение (0, чтобы как можно раньше). Функция возвращает вам интерфейс 1 DirectMusicSegnientSrau-, который вы можете использовать, чтобы запрашивать сегмент, пока он играет.

Загрузка звуков. Обратите внимание в предыдущем коде Play на строчку перед вызовом PlaySeg- ment. Прежде чем что-то сможет воспроизводиться, оно должно быть загружено в синтезатор. Это очень важно, потому что если вы это не сделаете, никакого звука не будет. Вы загружаете сегмент вызовом метода Download, передавая интерфейс Performance (исполнения), которое вы, в конечном счете, будете использовать, чтобы сыграть его. Совет. Вам надоело памнить о загрузке ваших сегментов? Вы можете заставить Direct- Music автоматически загружать сегменты, когда ему это необходимо. Вы сделаете это вызовам метода SetGlobalParam из интерфейса IDirectMusicPerformanceS, передавая GUID PerfAutoDownloadllpocMompume документацию к DirectXdAH изучения деталей.

Определение, воспроизводится ли звук. Самая интересная вещь, которую вы можете сделать с помощью интерфейса полученного от PlaySegment, - это определение, играет ли в данный момент сегмент. Просто вызовите метод IsPlaying из интерфейса воспроизведения и передайте ему интерфейс состояния который вас интересует. IsPlaying возвратит S С К, если сегмент воспроизводится, и S__FALSE, если нет. Будьте осторожны, когда вы вызываете метод для сегмента, который еще то,1". ько получил команду воспроизводиться. Иногда IsPlaying слишком аккуратен: он просто говорит, выходит ли из колонок звук этого сегмента. Если вы только что вызвали PlaySegment, IsPlaying может возвратить из-за задержки - вы уже приказали звуку воспроизводиться, но он еще не успел скомандовать колонкам.

Выгрузка звука. Как только вы закончили работать со звуком, необходимо выгрузить его вызовом метода Unload из интерфейса сегмента. Он выгрузит данные сегмента из воспроизведения. Альтернативные способы воспроизведения звука. До сих пор вы рассматривали преимущественно, как использовать DirectX API для воспроизведения звука. Однако это не единственный способ, а иногда даже не лучший. В этом разделе вы рассмотрите пару альтернативных способов воспроизведения звука.

DirectSound. Одна из альтернатив использованию DirectMusic - это использование низкоуровневых интерфейсов DirectSound. Вообще-то, если вы уже начали использовать DirectX, нет никакого смысла в том, чтобы не использовать высокоуровневый интерфейс DirectMusic Loader. Я бы посоветовал использовать DirectSound, только если вы не хотите использовать, DirectX 8 (например, если вы хотите, чтобы ваша игра могла идти под Windows NT 4.0). Вот как загружать и воспроизводить ту к. не используя ничего, кроме интерфейсов DirectSound. Инициализировать DirectSound. Как конкретно вы будете это делать, зависит от версии DirectSound, которую вы используете, но в целом процесс аналогичен тому, как вы учились это делать в прошлой главе. Создать вторичный буфер и загрузить в него свой wave файл. Это сложная часть, потому что она включает анализ формата wave файла вручную. Это можно сделать, используя примеры программ DirectX или коды из Интернета. Воспроизведите свой звук вызовом метода Play вторичного буфера, созданного вами. Удалите вторичный буфер, с которым вы работали.

Пример программы под названием Cli3p2_DirectSoimd наглядно показывает, как воспроизводить звук, используя только интерфейсы DirectSound. Совет. Есть несколько примеров программ DirectX, демонстрирующих, как воспроизводит wave файлы, используя интерфейсы DirectSound В DirectX8 SDK есть 2 файла (dsutil, срр и dsulii 1 ¦ которые содержат множество полезных в( щей включая код для класса CSound, который использует буферы DirectSound. Windows API Waveform Audio. Если вы вообще не хотите использовать DirectX, есть еще один способ заставить wave файлы выходить из колонок: использовать Win32 API, особенно функции Waveform Audio. Waveform Audio сегмент из SDK документирован в MSDN, в Platform SDKAGraphics and Multimedia ServieesMVktllirncdia AudknWaveibm Audio. Совет, Если вы хотите использовать PlaySound, вы должны добавить библиотеку winmm I > Убедитесь, что вы ее добавили в список библиотек в компоновочной таблице в ¦ ¦> ovkco. проекта, иначе у вас будут возникать ошибки связи. Исключительного внимания заслуживает Win32 API функция PlaySound, которая может воспроизводить звук с из ресурса или памяти. Пример программы показывает, как воспроизводить звук из памяти, используя эту функцию.

Windows MCI. Если вы хотите получить немного больше, чем просто функцию PlavSoirnd, но не хотите использовать DirectX, вы можете воспроизвести звук, используя Win32 API's Media Control Interface (MCI). MCI был предназначен для связи между широким рядом мультимедийных устройств, устройств воспроизведения волнового звука, MIDI секвенсоров, устройств воспроизведения компакт-дисков и устройств воспроизведения цифрового видео. MCI - это подходящий интерфейс, который дает вам больше контроля над воспроизведением звуков. Например, вы можете играть сегмент wave файла и установить точки начала и конца. Это значит, вы можете сказать: «Играй этот звук с 2,54 секунды по 3,8 i секунды». Вы научитесь использовать MCI для воспроизведения CD данных позже. Там также будет больше информации о MSDN, на Platform and Multimedia Services\MultimediaAudio\M CI.