本文整理汇总了C++中SoundInstance::StopPlaying方法的典型用法代码示例。如果您正苦于以下问题:C++ SoundInstance::StopPlaying方法的具体用法?C++ SoundInstance::StopPlaying怎么用?C++ SoundInstance::StopPlaying使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SoundInstance
的用法示例。
在下文中一共展示了SoundInstance::StopPlaying方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Advance
//.........这里部分代码省略.........
}
if( newInstance )
{
newInstances.PutData( newInstance );
}
END_PROFILE("Recalculate Priorities" );
for( int i = 0; i < newInstances.Size(); ++i )
{
SoundInstance *newInstance = newInstances[i];
bool isMusic = (newInstance->m_positionType == SoundInstance::TypeMusic);
// Find worst old sound to get rid of
START_PROFILE("Find best Channel" );
int bestAvailableChannel = FindBestAvailableChannel( isMusic );
END_PROFILE("Find best Channel" );
// FindBestAvailableChannel can return -1, so let's not access an invalid index later on.
if ( bestAvailableChannel < 0 )
continue;
START_PROFILE("Stop Old Sound" );
// Stop the old sound
SoundInstance *existingInstance = GetSoundInstance( m_channels[bestAvailableChannel] );
if( existingInstance && !existingInstance->m_loopType )
{
ShutdownSound( existingInstance );
}
else if( existingInstance )
{
existingInstance->StopPlaying();
}
END_PROFILE("Stop Old Sound" );
START_PROFILE( "Start New Sound" );
// Start the new sound
bool success = newInstance->StartPlaying( bestAvailableChannel );
if( success )
{
m_channels[bestAvailableChannel] = newInstance->m_id;
}
else
{
// This is fairly bad, the sound failed to play
// Which means it failed to load, or to go into a channel
ShutdownSound( newInstance );
}
END_PROFILE("Start New Sound" );
START_PROFILE("Reset Channel" );
g_soundLibrary3d->ResetChannel( bestAvailableChannel);
END_PROFILE("Reset Channel" );
}
//
// Advance all sound channels
START_PROFILE("Advance All Channels" );
for( int i = 0; i < m_numChannels; ++i )
{
SoundInstanceId soundId = m_channels[i];