{{notification.text}}

MirGames

Привет. Это мой первый туториал, поэтому не будем тратить время на бессмысленную болтовню и перейдем сразу к делу.
Наверняка вам когда либо нужен был звук в своей программе / игре, но таких тяжеловесов как 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
  ' Здесь обработчик ошибки

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

16.03.16 13:03