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

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

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

Rambler's Top100

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

Андрей Ильин приобрел широкую известность после неприметной роли Лёши Чистякова.



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

Как только пользователь услышал звук и нажал клавишу, чтобы остановить его, код начинает освобождать ту память, которую мы предварительно заняли. Освобождаем вторичный буфер. Программа выделила память только под две вещи: вторичный буфер и собственно интерфейс DirectSound (который также буфер). SAFE RELEASE смотрит на данный ему интерфейс и, если он не NULL, освобождает его (вызывая метод Release) и после этого выставляет его в NULL. Таким образом, если кто-то попробует использовать его снова, ваша программа вызовет нарушение доступа (access violation) и у вас будет возможность увидеть, что идет не так. Это стандартный прием при использовании DirectX, и вам следует использовать вместо того, чтобы напрямую обращаться к методу Release.

Также убедитесь, что вы освобождаете память в правильном порядке. Вы должны освободить все вторичные буферы до того, как вы освободите основной интерфейс DirectSound. Если вы сделаете не так, то DirectSound предупредит вас об этом (через отладочный вывод (debug output)), так как он считает, что если буфер не освобожден на момент завершения работы, то про него забыли. Не забывайте, что, вероятнее всего, вы никогда не будете использовать Direct Sound в настоящей игре. DirectX предоставляет вам гораздо более высокоуровневые элементы управления, чем этот - вам никогда не нужно будет создавать ваши собственные звуки на конкретных частотах, чтобы делать музыку. Если бы вы создавали игру и вам хотелось, чтобы там была классная ретро-музыка (типа трекерной или FM синтеза), вы могли бы использовать этот код, чтобы создать но тогда вам пришлось бы не раз изобретать велосипед.

Пример программы преследовал две цели: показать вам основы инициализации и использования DirectSound и показать, что происходит на низком уровне, когда вы проигрываете звук. Когда вы запираете буферы и работаете со звуком в виде байтового потока, вы находитесь на очень низком уровне. Я решил показать эту программу, чтобы вы знали, как все происходит на самом деле. Я обнаружил, что, если понимать основу чего-либо, то разбираться с более высокими уровнями гораздо легче.