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

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

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

Rambler's Top100

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

горшок fisher price



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

DirectMusic, DirectSound или DirectX Audio? Сначала был DirectSound (звук). Затем - DirectMusic (музыка). А потом, когда уже думалось, что все так и останется, Microsoft (в DirectX 8) представил новое имя - DirectX Audio (аудио). Печально то, что два из этих трех терминов неверны. Вы можете воспроизводить звуковые эффекты, пользуясь DirectMusic, и вы можете воспроизводить музыку, используя DirectSound. Забавно, правда? Вы дольше останетесь в здравом рассудке, если будете думать об этих интерфейсах не в смысле: «ОК, этот для звуковых эффектов, а этот для музыки», - а скорее, в терминах API низкого и высокого уровня.

Гигантская невидимая рука Microsoft заставляет нас всех пользоваться Direct-Music как единственным стоящим аудио API. Что касается DirectX 9, то о нем все еще можно говорить как об API низкого уровня (DirectSound); хотя очень часто мы используем только стандартные функции DirectMusic и не беспокоимся о низкоуровневом DirectSound API (кроме тех5- случаев, когда вы хотите получить низкоуровневый контроль над вашими WAV файлами). Я не удивлюсь, если в будущем Microsoft уберет DirectSound API и сделает DirectMusic API единственно доступным интерфейсом в DirectX Audio. Однако остальная часть главы будет сосредоточена на DirectSound не потому, что он проще, чем DirectMusic, или с него лучше начинать изучение, а просто потому, что DirectSound позволяет вам снять все слои (layers), надстроенные Microsoft, и иметь дело только с пересылкой байт к звуковой карте. Для новичков в программировании игрового аудио это самый простой из возможных примеров, а для опытных в игровом аудио людей - это, вероятно, самый знакомый метод.

Стриминг. Теперь вы знаете, что звуковые эффекты помещаются во вторичные буферы. Но что происходит, если вторичный буфер слишком мал, чтобы вместить звуковой эффект? Например, если вы собираетесь играть цифровую музыку в течение 15-минутноЙ сцены в игре, вы не можете просто загрузить все эти 15 минут аудио данных в память за раз (т. е, вы, конечно, можете, но это заняло бы слишком много памяти), Лучшим решением было бы загрузить часть аудио данных, которая вам нужна, прямо перед тем, как она понадобится, другими словами, заставить информацию «течь» с диска.

Стриминг (потоковая передача данных) - это достаточно обычная технология, которая очень хорошо работает (главным образом потому, что жесткий диск или CD-ROM может считывать байты гораздо быстрее, чем колонки их воспроизводят). Когда вы таким образом передаете аудио данные, вместо загрузки всех данных в память одномоментно, вы рассматриваете ваш вторичный буфер как окно, прокручивающее ваши звуковые данные, и загружаете данные по мере необходимости. Десять секунд аудио данных (начало 3-минутной песни) загружены в буфер. Затем код заставляет буфер начать воспроизведение, и песня начинает играть. Пока она играет, компьютер читает новые данные с диска и помещает их в буфер прямо позади указателя воспроизведения, записывая их сверху на те, которые только что были сыграны. В конце концов, указатель воспроизведения перемещается снова в начало буфера, и начинают воспроизводиться новые данные. Все идет так, пока не будет воспроизведены все данные. Очевидно, весь этот процесс зависит от способности считывать данные быстрее, чем они воспроизводятся. К счастью, сейчас жесткий диск может считывать байты быстрее, чем их могут играть колонки.