0

基本的なコードを以下のように定義しています。コードのスニペットは、キーを押すとミュージック チャックを再生します。ここでの問題は、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;
            }
        }
4

1 に答える 1