基本的なコードを以下のように定義しています。コードのスニペットは、キーを押すとミュージック チャックを再生します。ここでの問題は、file1 が短く、file2 がわずかに長いことです。両方をミックスして再生し、file1 のデュレーションを file2 に一致するように伸ばす必要があります。sdl 経由で行う方法は?
Mix_Chunk *file1 = NULL;
Mix_Chunk *file2 = NULL;
file1 = Mix_LoadWAV( "file1.wav" );
file2 = Mix_LoadWAV( "file2.wav" );
while( quit == false )
{
//While there's events to handle
while( SDL_PollEvent( &event ) )
{
//If a key was pressed
if( event.type == SDL_KEYDOWN )
{
//If 1 was pressed
if( event.key.keysym.sym == SDLK_1 )
{
//Play the scratch effect
if( Mix_PlayChannel( -1, file1, 0 ) == -1 )
{
return 1;
}
}
//If 2 was pressed
else if( event.key.keysym.sym == SDLK_2 )
{
//Play the high hit effect
if( Mix_PlayChannel( -1, file2, 0 ) == -1 )
{
return 1;
}
}
}
//If the user has Xed out the window
if( event.type == SDL_QUIT )
{
//Quit the program
quit = true;
}
}