{{notification.text}}

MirGames

 
16.03.16 13:03, опубликовал

Привет. Это мой первый туториал, поэтому не будем тратить время на бессмысленную болтовню и перейдем сразу к делу.
Наверняка вам когда либо нужен был звук в своей программе / игре, но таких тяжеловесов как DirectSound или XAudio подключать не хотелось, да и в изучении они сложны для неопытного новичка.
Цель данного туториала объяснить о подсистеме WinMM и Microsoft Media Control Interface(MCI).
Для начала необходимо подключить зголовочный файл мультимедиа подсистемы Windows:

#include "win/mmsystem.bi"

сам по себе MCI может работать в нескольких режимах:
CDAudio - музыка на CD
WaveAudio - звук в формате wav, mp3, ogg
Video - AVI

долой объяснения, перейдем к коду
Для начала нам необходимо загрузить звуковой буфер из файла:

Dim hres as HRESULT
hres = mciSendString("open C:/Windows/Media/tada.wav alias MyMusic", NULL, NULL, NULL)
if HRES <> 0 then
  ' Здесь обработчик ошибки

эта строка пошлет команду мультимедийной системе WIndows что нам надо загрузить файл C:Windows/Media/tada.wav.
При этом если функция не вернула 0, это значит что произошла ошибка.
Чтобы проиграть наш звуковой буфер асинхронно нам достаточно послать другую команду MCI:

Dim hres as HRESULT
hres = mciSendString("play MyMusic", NULL, NULL, NULL)
if HRES <> 0 then
  ' Здесь обработчик ошибки

Если в процессе выполнения программы звук вам стал больше не нужен - отправьте команду close:

    Dim hres as HRESULT
hres = mciSendString("close MyMusic", NULL, NULL, NULL)
if HRES <> 0 then
  ' Здесь обработчик ошибки

вот и все :) как видите все легко. Этот код с небольшими модификациями применим к любому ЯП

Тэги

Последние комментарии

Привет, Dan, сорри, что отвлекаю. Т.к. в чате не было десктоп-уведомлений, удалось собрать людей тут в Telegram-конфе. https://t.me/joinchat...
20.08.17 09:23, egslava
Адрес чата
Есть. XProger, Spose, MeF, HEX, я, еще кто-то был
18.08.17 12:01, Daddy
Адрес чата
В чате кроме тебя-то кто-то есть?
17.08.17 19:06, Vga
Normal Mapping visualization
@egslava, не там проверяешь, проверять надо в городе Ф.
19.04.17 19:42, nbaksalyar
Normal Mapping visualization
@Said, ну, я проверил, чот не особо.
19.04.17 17:59, egslava
Normal Mapping visualization
В оффлайне. Там тоже есть жизнь.
17.04.17 07:51, Said
Normal Mapping visualization
@Dron
16.04.17 14:07, egslava
Normal Mapping visualization
А-то! ;-) Ты лучше скажи, куда вы все подевались и где жизнь теперь? :-)
15.04.17 20:18, egslava
Normal Mapping visualization
На мирге еще теплится жизнь 0_о
14.04.17 12:15, DRON
История mirgames в лицах #2.
Ох! Spose, XProger, спасибо большое! Просто невероятное удовольствие от прочтения! Блин, а ведь я всё время думал, что XProger не играл особ...
05.02.17 02:21, egslava