Qt рдПрдкреНрд▓рд┐рдХреЗрд╢рди (Qt + FMOD) рдореЗрдВ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдзреНрд╡рдирд┐ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ

рдореБрдЭреЗ рд╡рд╣ рд╕рдордп рдпрд╛рдж рд╣реИ рдЬрдм рдореИрдВ рдХреНрдпреВрдЯреА рдХреА рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдЦреБрд╢ рдерд╛ ... рдлреЛрдирди рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣рд╛рдБред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рд╕рдордп рдпрд╛рдж рд╣реИ: рдмрд╣реБрдд рдХрдо рд▓реЛрдЧ рдЗрд╕ рдлреЛрдирди рдХреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо, рд╡рд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдзреНрд╡рдирд┐рдпрд╛рдБ рдирд╣реАрдВ рдмрдЬрд╛ рд╕рдХрддрд╛ред рд╣рд╛рдБ, рдФрд░ рдЙрд╕рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рдВрдЧрдбрд╝реЗ рд╣реИрдВ ...



рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рдмреЗрд╣рддрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд▓рдЧрд╛ред рдПрдХ рджреЛ рдЕрд╕рдлрд▓ рдЕрд╕рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ FMOD рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЖрдпрд╛ред рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдХрдореА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдПрдХ рдореБрдлреНрдд (рдЧреИрд░-рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП) рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред



рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ: рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдХреНрд╕рд░ рд╣реИ, рдФрд░ рдХрдо-рд╡рд┐рд▓рдВрдмрддрд╛ рдбреАрдПрд╕рдкреА (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд┐рдЪ рд╢рд┐рдлреНрдЯрд░ рд╕рд╣рд┐рдд), рдФрд░ рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ (рдПрдордкреА 3, wav, ogg, aiff, MIDI, рдЖрджрд┐), рдФрд░ рдзреНрд╡рдирд┐ рдкреАрдврд╝реА, рдФрд░ рдзреНрд╡рдирд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкрдврд╝ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдФрд░ рдорд▓реНрдЯреА-рдЪреИрдирд▓ рдзреНрд╡рдирд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 5.1), рдФрд░ рдлрд┐рд░, рдФрд░ рдпрд╣, рдФрд░ рдкрд╛рдВрдЪрд╡рд╛рдВ, рдФрд░ рджрд╕рд╡рд╛рдВ ... рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ред рдФрд░ C рдФрд░ C ++ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред



рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдХрдо рд╡рдЬрди рд╣реИ (рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд ~ 370 рдХрд┐рд▓реЛ)ред



рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдпрд╣ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, fmodex.dll рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдлрдПрдордУрдбреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрдВрдХ рдФрд░ рд▓рд┐рдмрд░ рдлрд╝реЛрд▓реНрдбрд░ред рдореИрдВрдиреЗ рдЪреБрдирд╛ рд╣реИ рдХрд┐ рдореИрдВ C ++ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, #include <fmod.hpp> рд╕реЗ рдЬреБрдбрд╝рд╛, рдФрд░ рдлрд┐рд░ рдореИрдВ рдпрд╣ рдХрд░рддрд╛ рд╣реВрдВ:



1. рдореЗрд░реА рдЦрд┐рдбрд╝рдХреА рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдореИрдВ рд╡реЗрд░рд┐рдПрдмрд▓ FMOD рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реВрдВ :: рд╕рд┐рд╕реНрдЯрдо * рд╕рд┐рд╕реНрдЯрдо;

2. рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рдореИрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реВрдБ:

FMOD::System_Create(&system); system->init(32 /*maximum number of channels*/ , FMOD_INIT_NORMAL, 0); * This source code was highlighted with Source Code Highlighter .



  1. FMOD::System_Create(&system); system->init(32 /*maximum number of channels*/ , FMOD_INIT_NORMAL, 0); * This source code was highlighted with Source Code Highlighter .



  2. FMOD::System_Create(&system); system->init(32 /*maximum number of channels*/ , FMOD_INIT_NORMAL, 0); * This source code was highlighted with Source Code Highlighter .



FMOD::System_Create(&system); system->init(32 /*maximum number of channels*/ , FMOD_INIT_NORMAL, 0); * This source code was highlighted with Source Code Highlighter .





3. рдзреНрд╡рдирд┐ рдХрд░реЗрдВ:





  1. // рдзреНрд╡рдирд┐
  2. FMOD :: рдзреНрд╡рдирд┐ * рдзреНрд╡рдирд┐;
  3. // рд╕рд╛рдЙрдВрдб рдЪреИрдирд▓
  4. рдПрдлрдПрдордУрдбреА :: рдЪреИрдирд▓ * рдЪреИрдирд▓;
  5. // рдзреНрд╡рдирд┐ рдкреИрджрд╛ рдХрд░рдирд╛
  6. system- > system- > createSound ( "mysound.mp3" , FMOD_SOFTWARE | FMOD_LOOP_OFF, 0, & sound);
  7. // рдкреНрд▓реЗрдЗрдВрдЧ рд╕рд╛рдЙрдВрдб (рдЗрд╕реЗ рдПрдХ рдЪреИрдирд▓ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛)
  8. рдкреНрд░рдгрд╛рд▓реА-> playSound (1 / * рдЪреИрдирд▓ # 1 * / , рдзреНрд╡рдирд┐, рд╕рдЪ / * рд╢реБрд░реВ рд░реБрдХрд╛ рд╣реБрдЖ * / , рдФрд░ рдЪреИрдирд▓);
  9. // рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреНрд╡рдирд┐ рдЦреЗрд▓рддреЗ рд╣реИрдВ
  10. channel-> setPaused ( рдорд┐рдереНрдпрд╛ );
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред




рдЙрд╕реА рд╕рдордп, рдЖрдк рдмрд╣реБрдд рд╕реА рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рдЪреИрдирд▓ рдкрд░), рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рд▓реВрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЭрдВрдбрд╛ FMOD_LOOP_NORMAL)ред



рдЕрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕реА ++ - рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗрд╡рд▓ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рдорд┐рдирдЬреАрдбрдмреНрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕реА-рдЗрдВрдЯрд░рдлреЗрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ VS2008 рдХреЗ рд▓рд┐рдП Qt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, C-interfaces C ++ рд╕реЗ рдмрд╣реБрдд рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FMOD рдХреЗ рдмрдЬрд╛рдп :: рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╣рдо FMOD_System рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо-> init () рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо FMOD_System_init () рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред



рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП .pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВ:







  1. INCLUDEPATH + = FMOD / inc
  2. LIBS + = -LFMOD / lib -lfmodex_vc
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдореВрд▓ рд╕реЗрдЯ рд╕реЗ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ FMOD :: Channel :: setVolume () рдФрд░ setPan () - рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рд╕рдВрддреБрд▓рди рд╕реЗрдЯ рдХрд░рдирд╛ (рдмрд╛рдПрдВ - рджрд╛рдПрдВ)ред



рдПрдлрдПрдордУрдбреА рдХреЗ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ: рдкреНрд░рд▓реЗрдЦрди рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓рдЧрднрдЧ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред



рдирд┐рд░рд╛рдзрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ Qt + FMOD: DamnSampler рдХреА рдорджрдж рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ ред рдпрд╣ рдРрд╕рд╛ рдЕрдЬреАрдм рд╕рдВрдЧреАрдд рд╡рд╛рджреНрдпрдпрдВрддреНрд░ рд╣реИ - рдПрдХ рдзреНрд╡рдирд┐ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдИ) рдХреАрдмреЛрд░реНрдб рдХреА рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдкрд░ рд▓рдЯрдХрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдзреНрд╡рдирд┐рдпрд╛рдВ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдпрд╛ рд▓реВрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реВрддреНрд░ рдЬреБрдбрд╝реЗ рд╣реИрдВред



All Articles