本文整理汇总了C++中FMOD_System_PlaySound函数的典型用法代码示例。如果您正苦于以下问题:C++ FMOD_System_PlaySound函数的具体用法?C++ FMOD_System_PlaySound怎么用?C++ FMOD_System_PlaySound使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FMOD_System_PlaySound函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FMOD_System_PlaySound
void Sound::play(float vol){
if(vol==0)return;
FMOD_RESULT r;
if( !this->ch ){
r = FMOD_System_PlaySound( parent->sys, FMOD_CHANNEL_FREE, sound, 0, & this->ch );
} else {
r = FMOD_System_PlaySound( parent->sys, FMOD_CHANNEL_REUSE, sound, 0, & this->ch );
}
FMOD_ERRCHECK(r);
FMOD_Channel_SetVolume(ch, default_volume * vol );
}
示例2: FMOD_Sound_SetLoopCount
void SoundManager::playSound(const std::string &sound, bool loop)
{
if (loop)
{
FMOD_Sound_SetLoopCount(this->_sounds[sound], -1);
FMOD_System_PlaySound(this->_system, FMOD_CHANNEL_FREE, this->_sounds[sound], 0, 0);
}
else
{
FMOD_Sound_SetLoopCount(this->_sounds[sound], 0);
FMOD_System_PlaySound(this->_system, FMOD_CHANNEL_FREE, this->_sounds[sound], 0, 0);
}
}
示例3: Java_org_fmod_playsound_Example_cPlaySound
void Java_org_fmod_playsound_Example_cPlaySound(JNIEnv *env, jobject thiz, int id)
{
FMOD_RESULT result = FMOD_OK;
result = FMOD_System_PlaySound(gSystem, FMOD_CHANNEL_FREE, gSound[id], 0, &gChannel);
CHECK_RESULT(result);
}
示例4: MOD_Start
void MOD_Start (char *name, qboolean midi, qboolean loop, qboolean notify, qboolean resume)
{
char file[MAX_QPATH];
FMOD_CREATESOUNDEXINFO exinfo;
if(SND_Initialised == false)
return;
if(SND_MusicChannel.inuse == true)
FMOD_MusicStop();
if(strlen(name) == 0)
return;
if(SND_FOpen(name, midi, resume) == true)
{
memset(&exinfo, 0, sizeof(FMOD_CREATESOUNDEXINFO));
exinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
exinfo.length = SND_File.length;
result = FMOD_System_CreateSound(fmod_system, (const char *)SND_File.data, FMOD_HARDWARE | FMOD_OPENMEMORY | FMOD_2D, &exinfo, &fmod_music);
FMOD_ERROR(result, true, false);
if(loop == true)
{
SND_MusicChannel.looping = true;
result = FMOD_Sound_SetMode(fmod_music, FMOD_LOOP_NORMAL);
FMOD_ERROR(result, true, false);
}
else
{
SND_MusicChannel.looping = false;
result = FMOD_Sound_SetMode(fmod_music, FMOD_LOOP_OFF);
FMOD_ERROR(result, true, false);
}
strcpy(file, SND_File.filename);
SND_FClose();
}
if(!fmod_music)
{
Con_Printf("Couldn't open stream %s\n", file);
return;
}
else
{
if(notify == true)
Con_Printf("Playing: %s...\n", file);
}
result = FMOD_System_GetChannel(fmod_system, 0, &SND_MusicChannel.channel);
FMOD_ERROR(result, true, false);
result = FMOD_System_PlaySound(fmod_system, FMOD_CHANNEL_REUSE, fmod_music, 0, &SND_MusicChannel.channel);
FMOD_ERROR(result, true, false);
SND_MusicChannel.inuse = true;
}
示例5: CloseFile
void QSPCallBacks::PlayFile(QSPString file, int volume)
{
FMOD_SOUND *newSound;
FMOD_CHANNEL *newChannel;
QSPSound snd;
if (SetVolume(file, volume)) return;
CloseFile(file);
wxString strFile(wxFileName(wxString(file.Str, file.End), wxPATH_DOS).GetFullPath());
#if defined(__WXMSW__) || defined(__WXOSX__)
if (!FMOD_System_CreateSound(m_sys, wxConvFile.cWX2MB(strFile.c_str()), FMOD_SOFTWARE | FMOD_CREATESTREAM, 0, &newSound))
#else
FMOD_CREATESOUNDEXINFO exInfo;
memset(&exInfo, 0, sizeof(FMOD_CREATESOUNDEXINFO));
exInfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
wxString dlsPath(QSPTools::GetAppPath() + QSP_MIDIDLS);
wxCharBuffer dlsCharPath(wxConvFile.cWX2MB(dlsPath.c_str()));
exInfo.dlsname = dlsCharPath;
if (!FMOD_System_CreateSound(m_sys, wxConvFile.cWX2MB(strFile.c_str()), FMOD_SOFTWARE | FMOD_CREATESTREAM, &exInfo, &newSound))
#endif
{
UpdateSounds();
FMOD_System_PlaySound(m_sys, FMOD_CHANNEL_FREE, newSound, FALSE, &newChannel);
snd.Channel = newChannel;
snd.Sound = newSound;
snd.Volume = volume;
m_sounds.insert(QSPSounds::value_type(strFile.Upper(), snd));
SetVolume(file, volume);
}
}
示例6: fmod_playsound
int fmod_playsound(int i)
{
FMOD_RESULT result;
result = FMOD_System_PlaySound(xsystem, FMOD_CHANNEL_FREE, sound[i], 0, &channel);
if (ERRCHECK(result)) return 1;
return 0;
}
示例7: PlayMono
void PlayMono( short which )
{
if( soundOn )
{
FMOD_System_PlaySound( fmodSystem, FMOD_CHANNEL_FREE, sound[which], false, &soundChannel[2]);
}
}
示例8: CreateGame
Sgame CreateGame(int id_map) {
Sgame game;
/* Creation du hero */
Shero Heros = CreateHero(POSITION_DEPART_HEROS_X, POSITION_DEPART_HEROS_Y,id_map,"sasha",PARQUET,DIRECTION_DEPART_HEROS);
game.hero= Heros;
/* Demarrage du son */
FMOD_SYSTEM *system;
FMOD_SOUND *son;
FMOD_System_Create(&system);
FMOD_System_Init(system, 7, FMOD_INIT_NORMAL, NULL);
FMOD_System_CreateSound(system, "data/music/Menutheme.mp3", FMOD_2D | FMOD_CREATESTREAM | FMOD_LOOP_NORMAL, 0, &son);
FMOD_Sound_SetLoopCount(son, -1);
FMOD_System_PlaySound(system, son, NULL, 0, NULL);
game.pokedex[9]=game.hero.pokemon[0];
game.pokedex[9].vu=1;
game.son = son;
game.system = system;
game.scenario=0;
/* Ajout des personnages non jouables du jeu */
addNpc(&game);
return game;
}
示例9: FindSample
bool Audio::Play(std::string name)
{
FMOD_RESULT res;
Sample *sample = FindSample(name);
//***BUG
if (!sample) return false;
if (sample->sample != NULL) {
try {
//sample found, play it
res = FMOD_System_PlaySound(
system,
FMOD_CHANNEL_FREE,
sample->sample,
true,
&sample->channel);
if (res!= FMOD_OK) return false;
FMOD_Channel_SetLoopCount(sample->channel, -1);
FMOD_Channel_SetPaused(sample->channel, false);
} catch (...) {
return false;
}
}
return true;
}
示例10: I_StartSound
INT32 I_StartSound(sfxenum_t id, UINT8 vol, UINT8 sep, UINT8 pitch, UINT8 priority)
{
FMOD_SOUND *sound;
FMOD_CHANNEL *chan;
INT32 i;
float frequency;
sound = (FMOD_SOUND *)S_sfx[id].data;
I_Assert(sound != NULL);
FMR(FMOD_System_PlaySound(fsys, FMOD_CHANNEL_FREE, sound, true, &chan));
if (sep == 0)
sep = 1;
FMR(FMOD_Channel_SetVolume(chan, (vol / 255.0) * (sfx_volume / 31.0)));
FMR(FMOD_Channel_SetPan(chan, (sep - 128) / 127.0));
FMR(FMOD_Sound_GetDefaults(sound, &frequency, NULL, NULL, NULL));
FMR(FMOD_Channel_SetFrequency(chan, (pitch / 128.0) * frequency));
FMR(FMOD_Channel_SetPriority(chan, priority));
//UNREFERENCED_PARAMETER(priority);
//FMR(FMOD_Channel_SetPriority(chan, 1 + ((0xff-vol)>>1))); // automatic priority 1 - 128 based on volume (priority 0 is music)
FMR(FMOD_Channel_GetIndex(chan, &i));
FMR(FMOD_Channel_SetPaused(chan, false));
return i;
}
示例11: fmode
void fmode(void)
{
FMOD_SYSTEM *system;
FMOD_SOUND *musique;
FMOD_CHANNEL *channel;
FMOD_RESULT resultat;
char *str;
str = "./graphic/Martin Garrix - Animals.mp3";
FMOD_System_Create(&system);
FMOD_System_Init(system, 2, FMOD_INIT_NORMAL, NULL);
resultat = FMOD_System_CreateSound(system, str, FMOD_SOFTWARE
| FMOD_2D | FMOD_CREATESTREAM, 0, &musique);
if (resultat != FMOD_OK)
{
my_printf(2, "Cannot find ");
my_printf(2, "%s", str);
my_printf(2, ", put this file next to the executable 'corewar'");
write(2, "\n", 1);
}
else
{
FMOD_Sound_SetLoopCount(musique, -1);
FMOD_System_GetChannel(system, 9, &channel);
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, musique, 0, NULL);
}
}
示例12: FMOD_System_PlaySound
bool Audio::Play(Sample *sample)
{
FMOD_RESULT res;
if (sample == NULL) return false;
if (sample->sample == NULL) return false;
try {
res = FMOD_System_PlaySound(
system,
FMOD_CHANNEL_FREE,
sample->sample,
true,
&sample->channel);
if (res!= FMOD_OK) return false;
FMOD_Channel_SetLoopCount(sample->channel, -1);
FMOD_Channel_SetPaused(sample->channel, false);
} catch (...) {
return false;
}
return true;
}
示例13: FMOD_Channel_Stop
// ----------------------------------------------------------------------------
void ofxSoundPlayerFMOD::play()
{
// if it's a looping sound, we should try to kill it, no?
// or else people will have orphan channels that are looping
if (bLoop == true){
FMOD_Channel_Stop(channel);
}
// if the sound is not set to multiplay, then stop the current,
// before we start another
if (!bMultiPlay){
FMOD_Channel_Stop(channel);
}
FMOD_System_PlaySound(sys, FMOD_CHANNEL_FREE, sound, bPaused, &channel);
FMOD_Channel_GetFrequency(channel, &internalFreq);
FMOD_Channel_SetVolume(channel,volume);
FMOD_Channel_SetPan(channel,pan);
FMOD_Channel_SetFrequency(channel, internalFreq * speed);
FMOD_Channel_SetMode(channel, (bLoop == true) ? FMOD_LOOP_NORMAL : FMOD_LOOP_OFF);
//fmod update() should be called every frame - according to the docs.
//we have been using fmod without calling it at all which resulted in channels not being able
//to be reused. we should have some sort of global update function but putting it here
//solves the channel bug
FMOD_System_Update(sys);
}
示例14: WStringToString
bool ModuleIrisAudio::MePlay(wstring filePath, int volume, int rate){
string sfilepath = WStringToString(filePath);
const char* fpath = sfilepath.c_str();
if (channels == 0){
if (meChannel != NULL){
BOOL isPlaying;
FMOD_Channel_IsPlaying(meChannel, &isPlaying);
if (isPlaying)
FMOD_Channel_Stop(meChannel);
}
}
FMOD_RESULT result;
result = FMOD_System_CreateStream(fmodSystem, fpath, FMOD_DEFAULT, 0, &me);
if (result != FMOD_OK)
return false;
result = FMOD_System_PlaySound(fmodSystem, FMOD_CHANNEL_FREE, me, true, &meChannel);
if (result != FMOD_OK)
return false;
FMOD_Channel_SetMode(meChannel, FMOD_LOOP_NORMAL);
FMOD_Channel_SetVolume(meChannel, volume / 100.0f);
float frequancy;
FMOD_Channel_GetFrequency(meChannel, &frequancy);
FMOD_Channel_SetFrequency(meChannel, frequancy * (rate / 100.0));
FMOD_Channel_SetPaused(meChannel, FALSE);
return true;
}
示例15: whitgl_sound_play
void whitgl_sound_play(int id, float adjust)
{
int index = -1;
int i;
for(i=0; i<num_sounds; i++)
{
if(sounds[i].id == id)
{
index = i;
continue;
}
}
if(index == -1)
{
WHITGL_LOG("ERR Cannot find sound %d", id);
return;
}
FMOD_RESULT result = FMOD_System_PlaySound(fmodSystem, FMOD_CHANNEL_FREE, sounds[index].sound, true, &sounds[index].channel);
_whitgl_sound_errcheck("FMOD_System_PlaySound", result);
float defaultFrequency;
result = FMOD_Sound_GetDefaults(sounds[index].sound, &defaultFrequency, NULL, NULL, NULL);
_whitgl_sound_errcheck("FMOD_Sound_GetDefaults", result);
result = FMOD_Channel_SetFrequency(sounds[index].channel, defaultFrequency*adjust);
_whitgl_sound_errcheck("FMOD_Channel_SetFrequency", result);
result = FMOD_Channel_SetPaused(sounds[index].channel, false);
_whitgl_sound_errcheck("FMOD_Channel_SetPaused", result);
}