Школа создателей компьютерных игр

BannerDrive.ru
[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Воспроизведение WAV файлов



Подпишитесь на рассылку "Создание компьютерных игр"

Рассылки Subscribe.Ru
Создание компьютерных игр

Рассылка выходит раз в месяц.


Понравился сайт? Узнайте, как помочь сайту.


Рекомендуемые книги


Андре Ламот.
Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации


Андре Ламот.
Программирование игр для Windows. Советы профессионала


Проголосуйте за сайт в рейтинге GameTop!
(нажмите на кнопку рейтинга)

GameTop - рейтинг игровых ресурсов. Портал Rolemancer (www.rolemancer.ru)

Не забывайте, что результаты рейтинга обновляются раз в неделю. Пожалуйста, голосуйте почаще!


Статистика посещаемости

Rambler's Top100

Очереди | Все обучалки раздела | Воспроизведение MOD и MIDI c помощью FMOD

Описание

Рассматривается воспроизведение звуковых файлов WAV с помощью стандартных средств Windows.

Программа проигрывает звуковые файлы разными способами.

Скачать обучалку (Visual C++ 6)

Работа программы

Исходный код


//            - "Talk to me like I'm a 3 year old!" Programming Lessons -       
//                                                                       
//            $Author:            Ben Humphrey      digiben@gametutorials.com   
//                                                                              
//            $Program:            PlaySound                                    
//                                                                              
//            $Description:      Shows how to play a wav file                   
//                                                                              
//            $Date:                  6/25/00                                   
//
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

#include <windows.h>                  // Необходима для использования PlaySound()
#include <stdio.h>                        // Необходима для подключения всех стандартных функций С

// Главная функция main() - начало нашей программы
void main()                                    
{                                                
      int i = 0;      // Счетчик
                                                
      // Отображаем сообщение о первом звуке
      printf("Playing synchronous sound...\n");

      /*      PlaySound() это функция, которую мы используем для воспроизведения звука.
            Первый параметр это имя wav файла. Второй параметр NULL, если только
            файл не находится в файле ресурсов. В этом случае мы бы указали второй
            параметр SND_RESOURCE. Третий параметр наиболее важен. Как видите,
            я поместил в него два параметра. Используя оператор |, мы указываем,
            что нам нужно несколько опций. Другим примером такого параметра может
            быть "SND_FILENAME | SND_SYNC | SND_LOOP"
            Первая опция, "SND_FILENAME", указывает функции, что мы используем звук
            из файла. Вторая опция, "SND_SYNC", указывает, что мы хотим воспроизвести
            звук синхронно. Синхронное воспроизведение означает, что программа не
            будет продолжать выполнение, до тех пор, пока не закончится воспроизведение
            звука.
      */
      PlaySound("mysound.wav", NULL, SND_FILENAME | SND_SYNC);

      Sleep(1500);      // Останавливаем программу на 3 секунды

      /*      Код, приведенный выше, воспроизводит звук, и продолжает выполнение, когда звук
            закончится. Вы можете спросить... а что если мы хотим, чтобы звук проигрывался,
            когда происходит что-то еще? Хороший вопрос. Все, что нужно сделать, это 
            использовать SND_ASYNC вместо SND_SYNC. В этом случае, звук проигрывается
            асинхронно, то есть в фоновом режиме.
      */

      PlaySound("mysound2.wav", NULL, SND_FILENAME | SND_ASYNC);
      
      // Это сообщение будет отображаться, пока проигрывается звук
      printf("Playing asynchronous sound");

      // Создадим простой цикл for, чтобы показать, что мы делаем что-либо, 
      // пока воспроизводится звук.
      for(i = 0; i < 50; i++)
      {
            printf(".");                  // Печатаем точку при каждом выполнении цикла
            Sleep(50);                        // Останавливаем программу на 1/20 секунды (1000 = 1 секунда)
      }
      printf("\n");   // Помещаем курсор на следующую строку
}       // Конец программы


//////////////////////////// Примечание ///////////////////////////////////////////////
//
//      Это простейший пример, показывающий, как воспроизводить звуки в ваших программах.
//      Это можно делать в консольном приложении или в Win32. В этой программе показывается,
//      как проигрывать звук синхронно (SND_SYNC). Конечно, это не позволит программе
//      продолжаться до тех пор, пока звук не закончится. Если вы хотите воспроизводить
//      звук в фоне, или асинхронно, тогда используйте SND_ASYNC.
//
//      Вам может захотеться загрузить огромный 3х-минутный звук и воспроизводить его
//      в вашей игре. С этим есть одна проблема. PlaySound() - очень простая, примитивная
//      функция. Если вы сделаете так, то потребуется время, чтобы загрузить звук, и затем
//      он будет "прыгать". Если вы хотите проигрывать долгую музыку, вам лучше либо
//      использовать MIDI, либо исследовать DirectSound. MP3 также будет хорошей идеей.
//      В основном, PlaySound() лучше использовать для звуковых эффектов небольших
//      вступлений. Если вы хотите, чтобы звук повторялся, добавьте SND_LOOP. Он будет
//      воспроизводиться до тех пор, пока вы не вызовете PlaySound() еще раз с этими
//      параметрами: PlaySound(NULL, NULL, SND_PURGE);
//      Это остановит воспроизведение.
//
//      ///////////////////////// Подключение библиотеки к проекту ///////////////////////////
//
//      Когда вы будете создавать свои программы, вам понадобится добавить в ваш проект
//      библиотеку (файл .lib). Это файл с именем "winmm.lib".
//      Чтобы сделать это, выполните следующие действия:
//      
//      1) Перейдите в меню Project и выберите Settings (Alt-F7)
//      2) Теперь нажмите на вкладку "Link"
//      3) В поле "Object/Library modules:" наберите в любом месте: winmm.lib
//      4) Произведите повторную сборку проекта (Build - Rebuild All - прим.переводчика)
//         и вы сможете использовать PlaySound
//
//  *внимание*  Если у вас появляется сообщение об ошибке:  Unresolved External: PlaySound(),
//              вы неправильно подключили библиотеку, или не подключили windows.h
//
//      Если вы посмотрите установки этого проекта, вы найдете winmm.lib. Библиотека это просто
//      некоторый код, который помещается в файл, который вы можете подключить, вместо того,
//      чтобы добавлять дополнительные .c файлы. Вы можете создавать собственные библиотеки.
//      Просто выберите при создании проекта "Static Library", вместо Console Application.
//      Обычно, библиотеки используются, когда у вас есть код, который вы больше не хотите
//      изменять. Например, графические библиотеки, 3D библиотеки, или математические библиотеки.
//
// © 2001 GameTutorials
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

Скачать обучалку (Visual C++ 6)

Очереди | Все обучалки раздела | Воспроизведение MOD и MIDI c помощью FMOD

[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Copyright © 2003-2005 Евгений Казеко. Все права защищены. E-mail: evgeniy@kazeko.com

Окна и монтаж: пластиковые окна . Это пластиковые. , аренда техники пермь. Реферат прокат и аренда техники , Велосипеды: большой каталог, велосипеды продажа в интернет-магазине.