这篇教程C++ FMOD_System_Update函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中FMOD_System_Update函数的典型用法代码示例。如果您正苦于以下问题:C++ FMOD_System_Update函数的具体用法?C++ FMOD_System_Update怎么用?C++ FMOD_System_Update使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了FMOD_System_Update函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: 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);}
开发者ID:alsdncka,项目名称:digitalstarcode,代码行数:31,
示例2: Java_org_fmod_playsound_Example_cUpdatevoid Java_org_fmod_playsound_Example_cUpdate(JNIEnv *env, jobject thiz){ FMOD_RESULT result = FMOD_OK; result = FMOD_System_Update(gSystem); CHECK_RESULT(result);}
开发者ID:mperroteau,项目名称:Euterpe,代码行数:7,
示例3: CDA_Updatevoid CDA_Update (void){#ifdef UQE_FMOD_CDAUDIO if(SND_Initialised == false || SND_MusicChannel.inuse == false) return; FMOD_System_Update(fmod_system); SND_MusicChannel.volume = bgmvolume.value; if(SND_MusicChannel.volume < 0.0f) SND_MusicChannel.volume = 0.0f; if(SND_MusicChannel.volume > 1.0f) SND_MusicChannel.volume = 1.0f; FMOD_Channel_SetVolume(SND_MusicChannel.channel, SND_MusicChannel.volume); if(SND_MusicChannel.volume == 0.0f | cl.paused == true) CDA_Pause(); else CDA_Resume();#else CDAudio_Update();#endif}
开发者ID:infernuslord,项目名称:uqe-quake,代码行数:28,
示例4: playMusicvoid playMusic(const int & n){ result = FMOD_System_PlaySound(sys, FMOD_CHANNEL_FREE, sounds[n], 0, &chan); ERRCHECK(result); FMOD_System_Update(sys); return;}
开发者ID:cscool,项目名称:portal,代码行数:9,
示例5: FMOD_System_Updatevoid FMCSound::stop(){ m_has_played = false; FMOD_System_Update(m_fmod_system); if (m_fmod_channel == 0) return; FMOD_Channel_Stop(m_fmod_channel);}
开发者ID:Rodeo314,项目名称:vasFMC-Krolock85,代码行数:9,
示例6: play void play(){ if(sound){ FMOD_RESULT result = FMOD_System_PlaySound(System, FMOD_CHANNEL_FREE, sound, false, &channel); if(result == FMOD_OK){ FMOD_Channel_SetVolume(channel, Config.EffectVolume); FMOD_System_Update(System); } } }
开发者ID:William8915,项目名称:QSanguosha,代码行数:10,
示例7: Updatevoid Update(){ FMOD_RESULT result = FMOD_OK; if (gSystem) { result = FMOD_System_Update(gSystem); CHECK_RESULT(result); }}
开发者ID:mperroteau,项目名称:Euterpe,代码行数:10,
示例8: Updatevoid AudioManager::Update(){ // Update the audio system. if( Initialized ) { if( FMOD_System_Update( SystemInstance ) != FMOD_OK ) throw exception(); }}
开发者ID:awillett,项目名称:Team8,代码行数:10,
示例9: play void play(const bool doubleVolume = false) { if (sound) { FMOD_RESULT result = FMOD_System_PlaySound(System, FMOD_CHANNEL_FREE, sound, false, &channel); if (result == FMOD_OK) { FMOD_Channel_SetVolume(channel, (doubleVolume ? 2 : 1) * Config.EffectVolume); FMOD_System_Update(System); } } }
开发者ID:Fsu0413,项目名称:QSanguosha-For-Hegemony,代码行数:11,
示例10: FMOD_System_CreateStreamvoid Audio::playBGM(const QString &filename){ FMOD_RESULT result = FMOD_System_CreateStream(System, filename.toLocal8Bit(), FMOD_LOOP_NORMAL, NULL, &BGM); if (result == FMOD_OK) { FMOD_Sound_SetLoopCount(BGM, -1); FMOD_System_PlaySound(System, FMOD_CHANNEL_FREE, BGM, false, &BGMChannel); FMOD_Channel_SetVolume(BGMChannel, Config.BGMVolume); FMOD_System_Update(System); }}
开发者ID:Fsu0413,项目名称:QSanguosha-For-Hegemony,代码行数:12,
示例11: FMOD_System_Updatevoid Sound::Update(){ FMOD_System_Update(fmodSystem); for(int i = 0; i < MAX_SOUNDS; i++) { Sound* sound = sounds[i]; if(sound == nullptr) continue; if(sound->onlyPlayOnce && !sound->Is_Playing()) Destroy_Sound(sound); }}
开发者ID:Vavassor,项目名称:meteor,代码行数:13,
示例12: sound_playvoid sound_play(eSound snd, float vol, float pan, float freq){ static Sound* s; if (!s) s = &((Data*)SDLazy_GetData())->sound; FMOD_System_PlaySound(s->system, FMOD_CHANNEL_FREE, s->mp3[snd], 0, &s->chan); FMOD_Channel_SetVolume(s->chan, vol); FMOD_Channel_SetPan(s->chan, pan); FMOD_Channel_SetFrequency(s->chan, freq); FMOD_System_Update(s->system);}
开发者ID:AntoineBt,项目名称:Shoot-em-Up-SDL-2D,代码行数:14,
示例13: Java_org_fmod_realtimestitching_Example_cUpdatevoid Java_org_fmod_realtimestitching_Example_cUpdate(JNIEnv *env, jobject thiz){ FMOD_RESULT result = FMOD_OK; /* Replace the subsound that just finished with a new subsound, to create endless seamless stitching! Note that this polls the currently playing subsound using the FMOD_TIMEUNIT_BUFFERED flag. Remember streams are decoded / buffered ahead in advance! Don't use the 'audible time' which is FMOD_TIMEUNIT_SENTENCE_SUBSOUND by itself. When streaming, sound is processed ahead of time, and things like stream buffer / sentence manipulation (as done below) is required to be in 'buffered time', or else there will be synchronization problems and you might end up releasing a sub-sound that is still playing! */ result = FMOD_Channel_GetPosition(gChannel, &gCurrentSubSoundID, (FMOD_TIMEUNIT)(FMOD_TIMEUNIT_SENTENCE_SUBSOUND | FMOD_TIMEUNIT_BUFFERED)); CHECK_RESULT(result); if (gCurrentSubSoundID != gSubSoundID) { /* Release the sound that isn't playing any more. */ result = FMOD_Sound_Release(gSubSound[gSubSoundID]); CHECK_RESULT(result); /* Replace it with a new sound in our list. */ result = FMOD_System_CreateStream(gSystem, gSoundName[gSentenceID], FMOD_DEFAULT, 0, &gSubSound[gSubSoundID]); CHECK_RESULT(result); result = FMOD_Sound_SetSubSound(gSound, gSubSoundID, gSubSound[gSubSoundID]); CHECK_RESULT(result); sprintf(s, "Replacing subsound %d / 2 with sound %d / %d/n", gSubSoundID, gSentenceID, NUMSOUNDS); __android_log_write(ANDROID_LOG_INFO, "fmod_realtimestitching", s); gSentenceID++; if (gSentenceID >= NUMSOUNDS) { gSentenceID = 0; } gSubSoundID = gCurrentSubSoundID; } result = FMOD_System_Update(gSystem); CHECK_RESULT(result);}
开发者ID:mperroteau,项目名称:Euterpe,代码行数:49,
示例14: FMOD_System_Updatevoid SSVisualizer::UpdateUserLayer( const float deltaTime ) { // Perform non-simulation update logic here (Don't forget to set update order priority!) FMOD_System_Update(m_SoundSystem); //Get spectrum data PROFILE(AutoProfiler memAllocProfiler("VisualizerAllocation", Profiler::PROFILER_CATEGORY_STANDARD, true, true));#ifdef USE_STACK_ALLOC float* leftSpectrum = (float*)m_Allocator->Allocate(sizeof(float) * SPECTRUM_SIZE); float* rightSpectrum = (float*)m_Allocator->Allocate(sizeof(float) * SPECTRUM_SIZE); Particle2* particles = (Particle2*)m_Allocator->Allocate(sizeof(Particle2) * SPECTRUM_SIZE);#else float* leftSpectrum = (float*)malloc(sizeof(float) * SPECTRUM_SIZE); float* rightSpectrum = (float*)malloc(sizeof(float) * SPECTRUM_SIZE); Particle2* particles = (Particle2*)malloc(sizeof(Particle2) * SPECTRUM_SIZE);#endif PROFILE(memAllocProfiler.Stop()); FMOD_Channel_GetSpectrum(m_Channel, leftSpectrum, SPECTRUM_SIZE, 0, FMOD_DSP_FFT_WINDOW_TRIANGLE); FMOD_Channel_GetSpectrum(m_Channel, rightSpectrum, SPECTRUM_SIZE, 1, FMOD_DSP_FFT_WINDOW_TRIANGLE); int res = 8; float maxH; for (int i = 0; i < SPECTRUM_SIZE / res; ++i) { float h = -0.5f + glm::max((rightSpectrum[i] + rightSpectrum[i]) * 5.0f - 0.04f, 0.0f) + 0.015f; maxH = glm::max(h + 0.5f, maxH); for (int k = 0; k < res; k++) { int index = i * res + k; particles[index].Pos = glm::vec4((index / (float)SPECTRUM_SIZE) * 2.0f - 1.0f, h, 0.1f, 1); particles[index].Color = m_Color; } } maxH = glm::max(maxH, 0.0f); m_Color = glm::vec4(1.0f, 0.0f, 0.0f, 1.0f) * maxH + glm::vec4(0.0f, 0.0f, 1.0f, 1.0f) * (1.0f - maxH); glBindBuffer(GL_ARRAY_BUFFER, m_VBO); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Particle2) * SPECTRUM_SIZE, particles); m_RenderProgram.Apply(); glBindBuffer(GL_ARRAY_BUFFER, m_VBO); glBindVertexArray(m_VAO); glDrawArrays(GL_LINE_STRIP, 0, SPECTRUM_SIZE); PROFILE(AutoProfiler memDellocProfiler("VisualizerDeallocation", Profiler::PROFILER_CATEGORY_STANDARD, true, true));#ifdef USE_STACK_ALLOC m_Allocator->Unwind(m_Marker);#else free(leftSpectrum); free(rightSpectrum); free(particles);#endif PROFILE(memDellocProfiler.Stop());}
开发者ID:toimelin,项目名称:gameenginecourse2015,代码行数:48,
示例15: FMOD_CHECK void AudioPlayer::update( unsigned time ) { FMOD_CHECK( FMOD_System_Update( mFmodSys ) ); for( unsigned i = 0 ; i < MaxNumChannel ; ++i ) { if ( mChannels[ i ] == NULL ) continue; FMOD_BOOL isPlaying; if ( FMOD_Channel_IsPlaying( mChannels[i] , &isPlaying ) == FMOD_OK ) { if ( !isPlaying ) mChannels[i] = NULL; } } }
开发者ID:uvbs,项目名称:GameProject,代码行数:17,
示例16: MOD_Updatevoid MOD_Update (void){ if(SND_Initialised == false || SND_MusicChannel.inuse == false) return; FMOD_System_Update(fmod_system); SND_MusicChannel.volume = bgmvolume.value; if(SND_MusicChannel.volume < 0.0f) SND_MusicChannel.volume = 0.0f; if(SND_MusicChannel.volume > 1.0f) SND_MusicChannel.volume = 1.0f; FMOD_Channel_SetVolume(SND_MusicChannel.channel, SND_MusicChannel.volume); if(SND_MusicChannel.volume == 0.0f | cl.paused == true) MOD_Pause(); else MOD_Resume();}
开发者ID:infernuslord,项目名称:uqe-quake,代码行数:21,
示例17: FMOD_System_GetChannelsPlayingvoid Audio::stop(){ if (System == NULL) return; int n; FMOD_System_GetChannelsPlaying(System, &n); QList<FMOD_CHANNEL *> channels; for (int i = 0; i < n; i++) { FMOD_CHANNEL *channel; FMOD_RESULT result = FMOD_System_GetChannel(System, i, &channel); if (result == FMOD_OK) channels << channel; } foreach (FMOD_CHANNEL * const &channel, channels) FMOD_Channel_Stop(channel); stopBGM(); FMOD_System_Update(System);}
开发者ID:Fsu0413,项目名称:QSanguosha-For-Hegemony,代码行数:21,
示例18: mainint main(int argc, char **argv){ setup_ui(&argc, &argv); FMOD_SOUND *soundtrack; FMOD_CHANNEL *channel1; FMOD_VECTOR position = { 0, 0, 0 }; FMOD_VECTOR velocity = { 0, 0, 0 }; FMOD_VECTOR forward = { 0, 0, 1 }; FMOD_VECTOR up = { 0, 1, 0 }; FMOD_System_Create(&fsystem); FMOD_System_Init(fsystem, 100, FMOD_INIT_NORMAL, NULL); FMOD_System_Set3DSettings(fsystem, 1.0f, 1.0f, 1.0f); FMOD_System_CreateSound(fsystem, argc < 2 ? "../sounds/blast.wav" : argv[1], FMOD_3D | FMOD_LOOP_NORMAL, 0, &soundtrack); FMOD_System_PlaySound(fsystem, soundtrack, NULL, 1, &channel1); FMOD_Channel_Set3DAttributes(channel1, &position, &velocity, NULL); FMOD_Channel_SetPaused(channel1, 0); FMOD_System_Set3DListenerAttributes(fsystem, 0, &position, &velocity, &forward, &up); FMOD_System_Update(fsystem); gtk_main(); /*int i = 0; while (i < 500) { i++; FMOD_System_Update(fsystem); struct timespec sleepTime = { 0, 50 * 1000 * 1000 }; nanosleep(&sleepTime, NULL); }*/ FMOD_Sound_Release(soundtrack); FMOD_System_Close(fsystem); FMOD_System_Release(fsystem);}
开发者ID:tom95,项目名称:TOMSpaceshooter,代码行数:39,
示例19: FMOD_System_Updatevoid Systems::SoundSystem::Update(double dt){ FMOD_System_Update(m_System); //Delete sounds. Not until it's done playing std::map<EntityID, FMOD_CHANNEL*>::iterator it; for(it = m_DeleteChannels.begin(); it != m_DeleteChannels.end();) { FMOD_Channel_IsPlaying(it->second, &m_isPlaying); if(m_isPlaying) { it++; } else {// FMOD_Sound_Release(m_DeleteSounds[it->first]); m_DeleteSounds.erase(it->first); it = m_DeleteChannels.erase(it); } } //LOG_INFO("Antal emitters i listan: %i", m_Channels.size()); for(it = m_Channels.begin(); it != m_Channels.end();) { FMOD_Channel_IsPlaying(it->second, &m_isPlaying); if(!m_isPlaying) { it = m_Channels.erase(it); } else { it++; } }}
开发者ID:Tleety,项目名称:daydream,代码行数:36,
示例20: main//.........这里部分代码省略......... printf("Press 'Esc' to quit/n"); printf("/n"); fp = fopen("record.wav", "wb"); if (!fp) { printf("ERROR : could not open record.wav for writing./n"); return 1; } /* Write out the wav header. As we don't know the length yet it will be 0. */ WriteWavHeader(fp, sound, datalength); result = FMOD_Sound_GetLength(sound, &soundlength, FMOD_TIMEUNIT_PCM); ERRCHECK(result); /* Main loop. */ do { static unsigned int lastrecordpos = 0; unsigned int recordpos = 0; if (_kbhit()) { key = _getch(); } FMOD_System_GetRecordPosition(system, recorddriver, &recordpos); ERRCHECK(result); if (recordpos != lastrecordpos) { void *ptr1, *ptr2; int blocklength; unsigned int len1, len2; blocklength = (int)recordpos - (int)lastrecordpos; if (blocklength < 0) { blocklength += soundlength; } /* Lock the sound to get access to the raw data. */ FMOD_Sound_Lock(sound, lastrecordpos * exinfo.numchannels * 2, blocklength * exinfo.numchannels * 2, &ptr1, &ptr2, &len1, &len2); /* * exinfo.numchannels * 2 = stereo 16bit. 1 sample = 4 bytes. */ /* Write it to disk. */ if (ptr1 && len1) { datalength += fwrite(ptr1, 1, len1, fp); } if (ptr2 && len2) { datalength += fwrite(ptr2, 1, len2, fp); } /* Unlock the sound to allow FMOD to use it again. */ FMOD_Sound_Unlock(sound, ptr1, ptr2, len1, len2); } lastrecordpos = recordpos; printf("%-23s. Record buffer pos = %6d : Record time = %02d:%02d/r", (timeGetTime() / 500) & 1 ? "Recording to record.wav" : "", recordpos, datalength / exinfo.defaultfrequency / exinfo.numchannels / 2 / 60, (datalength / exinfo.defaultfrequency / exinfo.numchannels / 2) % 60); FMOD_System_Update(system); Sleep(10); } while (key != 27); printf("/n"); /* Write back the wav header now that we know its length. */ WriteWavHeader(fp, sound, datalength); fclose(fp); /* Shut down */ result = FMOD_Sound_Release(sound); ERRCHECK(result); result = FMOD_System_Release(system); ERRCHECK(result); return 0;}
开发者ID:Guitaroz,项目名称:Arcade-Space-Shooter,代码行数:101,
示例21: main//.........这里部分代码省略......... Main loop. */ do { if (_kbhit()) { key = _getch(); switch (key) { case 'a' : case 'A' : { static int mute = TRUE; FMOD_ChannelGroup_SetMute(groupA, mute); mute = !mute; break; } case 'b' : case 'B' : { static int mute = TRUE; FMOD_ChannelGroup_SetMute(groupB, mute); mute = !mute; break; } case 'c' : case 'C' : { static int mute = TRUE; FMOD_ChannelGroup_SetMute(masterGroup, mute); mute = !mute; break; } } } FMOD_System_Update(system); { int channelsplaying = 0; FMOD_System_GetChannelsPlaying(system, &channelsplaying); printf("Channels Playing %2d/r", channelsplaying); } Sleep(10); } while (key != 27); printf("/n"); /* A little fade out. (over 2 seconds) */ printf("Goodbye!/n"); { float pitch = 1.0f; float vol = 1.0f; for (count = 0; count < 200; count++) { FMOD_ChannelGroup_SetPitch(masterGroup, pitch); FMOD_ChannelGroup_SetVolume(masterGroup, vol); vol -= (1.0f / 200.0f); pitch -= (0.5f / 200.0f); Sleep(10); } } /* Shut down */ for (count = 0; count < 6; count++) { result = FMOD_Sound_Release(sound[count]); ERRCHECK(result); } result = FMOD_ChannelGroup_Release(groupA); ERRCHECK(result); result = FMOD_ChannelGroup_Release(groupB); ERRCHECK(result); result = FMOD_System_Close(system); ERRCHECK(result); result = FMOD_System_Release(system); ERRCHECK(result); return 0;}
开发者ID:InfoSmart,项目名称:InSource-Singleplayer,代码行数:101,
示例22: main//.........这里部分代码省略......... switch (key) { case ' ' : { int paused; FMOD_Channel_GetPaused(channel, &paused); FMOD_Channel_SetPaused(channel, !paused); break; } case '<' : { unsigned int ms; FMOD_Channel_GetPosition(channel, &ms, FMOD_TIMEUNIT_SENTENCE_MS); if (ms >= 10000) { ms -= 10000; } else { ms = 0; } FMOD_Channel_SetPosition(channel, ms, FMOD_TIMEUNIT_SENTENCE_MS); break; } case '>' : { unsigned int ms; FMOD_Channel_GetPosition(channel, &ms, FMOD_TIMEUNIT_SENTENCE_MS); ms += 10000; FMOD_Channel_SetPosition(channel, ms, FMOD_TIMEUNIT_SENTENCE_MS); break; } case 'n' : { FMOD_Channel_GetPosition(channel, ¤ttrack, FMOD_TIMEUNIT_SENTENCE_SUBSOUND); currenttrack++; if (currenttrack >= numtracks) { currenttrack = 0; } FMOD_Channel_SetPosition(channel, currenttrack, FMOD_TIMEUNIT_SENTENCE_SUBSOUND); break; } } } FMOD_System_Update(system); if (channel) { unsigned int ms; unsigned int lenms; FMOD_BOOL playing; FMOD_BOOL paused; int busy; result = FMOD_Channel_GetPaused(channel, &paused); ERRCHECK(result); result = FMOD_Channel_IsPlaying(channel, &playing); ERRCHECK(result); result = FMOD_Channel_GetPosition(channel, &ms, FMOD_TIMEUNIT_SENTENCE_MS); ERRCHECK(result); result = FMOD_Sound_GetLength(cdsound, &lenms, FMOD_TIMEUNIT_SENTENCE_MS); ERRCHECK(result); result = FMOD_File_GetDiskBusy(&busy); ERRCHECK(result); printf("Track %d/%d : %02d:%02d:%02d/%02d:%02d:%02d : %s (%s)/r", currenttrack + 1, numtracks, ms / 1000 / 60, ms / 1000 % 60, ms / 10 % 100, lenms / 1000 / 60, lenms / 1000 % 60, lenms / 10 % 100, paused ? "Paused " : playing ? "Playing" : "Stopped", busy ? "*" : " "); } Sleep(50); } while (key != 27); printf("/n"); /* Shut down */ result = FMOD_Sound_Release(cdsound); ERRCHECK(result); result = FMOD_System_Close(system); ERRCHECK(result); result = FMOD_System_Release(system); ERRCHECK(result); return 0;}
开发者ID:chandonnet,项目名称:FTB2015,代码行数:101,
示例23: mainint main(int argc, char *argv[]){ FMOD_SYSTEM *system; FMOD_SOUND *sound; FMOD_CHANNEL *channel = 0; FMOD_RESULT result; int key; unsigned int version; printf("===================================================================/n"); printf("NetStream Example. Copyright (c) Firelight Technologies 2004-2011./n"); printf("===================================================================/n/n"); if (argc < 2) { printf("Usage: netstream <url>/n"); printf("Example: netstream http://www.fmod.org/stream.mp3/n/n"); return -1; } /* Create a System object and initialize. */ result = FMOD_System_Create(&system); ERRCHECK(result); result = FMOD_System_GetVersion(system,&version); ERRCHECK(result); if (version < FMOD_VERSION) { printf("Error! You are using an old version of FMOD %08x. This program requires %08x/n", version, FMOD_VERSION); return 0; } result = FMOD_System_Init(system, 1, FMOD_INIT_NORMAL, 0); ERRCHECK(result); /* Bump up the file buffer size a little bit for netstreams (to account for lag). */ result = FMOD_System_SetStreamBufferSize(system, 64*1024, FMOD_TIMEUNIT_RAWBYTES); ERRCHECK(result); result = FMOD_System_CreateSound(system, argv[1], FMOD_HARDWARE | FMOD_2D | FMOD_CREATESTREAM | FMOD_NONBLOCKING, 0, &sound); ERRCHECK(result); printf("Press space to pause, Esc to quit/n/n"); /* Main loop */ do { unsigned int ms = 0, percent = 0; int playing = FALSE; int paused = FALSE; int starving = FALSE; FMOD_OPENSTATE openstate; if (!channel) { result = FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sound, FALSE, &channel); } if (_kbhit()) { key = _getch(); switch (key) { case ' ' : { if (channel) { int paused; FMOD_Channel_GetPaused(channel, &paused); FMOD_Channel_SetPaused(channel, !paused); } break; } } } FMOD_System_Update(system); for (;;) { FMOD_TAG tag; if (FMOD_Sound_GetTag(sound, 0, -1, &tag) != FMOD_OK) { break; } if (tag.datatype == FMOD_TAGDATATYPE_STRING) { printf("%s = %s (%d bytes) /n", tag.name, tag.data, tag.datalen); } else if (tag.type == FMOD_TAGTYPE_FMOD) { if (!strcmp(tag.name, "Sample Rate Change"))//.........这里部分代码省略.........
开发者ID:InfoSmart,项目名称:InSource-Singleplayer,代码行数:101,
示例24: mainint main(int argc, char *argv[]){ FMOD_SYSTEM *system; FMOD_SOUND *sound; FMOD_CHANNEL *channel = 0; FMOD_RESULT result; int key; unsigned int version; memset(gCurrentTrackArtist, 0, 256); memset(gCurrentTrackTitle, 0, 256); strcpy(gOutputFileName, "output.mp3"); /* Start off like this then rename if a title tag comes along */ printf("======================================================================/n"); printf("RipNetStream Example. Copyright (c) Firelight Technologies 2004-2011./n"); printf("======================================================================/n/n"); if (argc < 2) { printf("Usage: ripnetstream <url>/n"); return -1; } /* Create a System object and initialize. */ result = FMOD_System_Create(&system); ERRCHECK(result); result = FMOD_System_GetVersion(system, &version); ERRCHECK(result); if (version < FMOD_VERSION) { printf("Error! You are using an old version of FMOD %08x. This program requires %08x/n", version, FMOD_VERSION); return 0; } result = FMOD_System_Init(system, 100, FMOD_INIT_NORMAL, NULL); ERRCHECK(result); result = FMOD_System_SetStreamBufferSize(system, gFileBufferSize, FMOD_TIMEUNIT_RAWBYTES); ERRCHECK(result); result = FMOD_System_AttachFileSystem(system, myopen, myclose, myread, 0); ERRCHECK(result); printf("Buffering.../n/n"); result = FMOD_System_CreateSound(system, argv[1], FMOD_HARDWARE | FMOD_2D | FMOD_CREATESTREAM | FMOD_NONBLOCKING, 0, &sound); ERRCHECK(result); /* Main loop */ do { if (sound && !channel) { result = FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sound, FALSE, &channel); } if (kbhit()) { key = getch(); switch (key) { case ' ' : { if (channel) { int paused; FMOD_Channel_GetPaused(channel, &paused); FMOD_Channel_SetPaused(channel, !paused); } break; } case 'm' : case 'M' : { if (channel) { int mute; FMOD_Channel_GetMute(channel, &mute); FMOD_Channel_SetMute(channel, !mute); } break; } } } FMOD_System_Update(system); if (channel) { unsigned int ms = 0; int playing = FALSE; int paused = FALSE; int tagsupdated = 0;//.........这里部分代码省略.........
开发者ID:EEmmanuel7,项目名称:leapmotion-irrlicht,代码行数:101,
注:本文中的FMOD_System_Update函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ FMR_ASSERT函数代码示例 C++ FMOD_System_Release函数代码示例 |