Audio playing not in right time when calling from script

Hi There. I think the Unity is trolling me:

I have several scenes that goes one after another. To control this I created the simple button for taping:

    public void SceneControl()
    {
            sceneNavigator += 1;
    }

I tap the button and go from scene 0 to scene 1. Tap next and go from 1 to 2…
The problem is when I want to play sound in scene 1:

            if (sceneNavigator == 1)
            {
                soundToPlay1.Play();
            }

It’s not playing. It plays only when I tap second time. When the scene 1 is over. Not matter how long I wait to tap second time. It always play on next scene. By the way, it’s empty:

    if (sceneNavigator == 2)
    {

    }

I dont know what I doing wrong. Please, Help me people!

I don’t know why it’s working but I change soundToPlay.Play() to soundToPlay.PlayOneShot(). Now everything going well.
P.S.: If you hear some noise effects just do like here: Distorted Audio using playoneshot - Questions & Answers - Unity Discussions
Or add a trigger:

            if (!isPlayed)
            {
                soundToPlay.PlayOneShot();
                isPlayed = true;
            }

Thanks everybody for answers.