您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FMOD_System_Update函数代码示例

51自学网 2021-06-01 20:42:41
  C++
这篇教程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_cUpdate

void 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_Update

void 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: playMusic

void 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_Update

void 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: Update

void Update(){	FMOD_RESULT result = FMOD_OK;	if (gSystem)	{		result = FMOD_System_Update(gSystem);		CHECK_RESULT(result);	}}
开发者ID:mperroteau,项目名称:Euterpe,代码行数:10,


示例8: Update

void 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_CreateStream

void 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_Update

void 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_play

void		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_cUpdate

void 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_Update

void 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_Update

void 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_GetChannelsPlaying

void 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: main

int 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_Update

void 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, &currenttrack, 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: main

int 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: main

int 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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。