Music doesnt play in the scene i attached it to

AudioSource source;
    [SerializeField] AudioClip mainmenu;
    [SerializeField] AudioClip firstlvl;
    [SerializeField] AudioClip secondlvl;

public void Update()
    {
        if (SceneManager.GetActiveScene().buildIndex == (1))
        {
            source.clip = firstlvl;
            source.Play();


        }

        if (SceneManager.GetActiveScene().buildIndex == (7))
        {

            source.clip = secondlvl;
            source.Play();

        }

        if (SceneManager.GetActiveScene().buildIndex == (0))
        {
            source.clip = mainmenu;
            source.Play();

        }
    }

is my audio source attached to nothing or what? I couldnt figure out can someone help?

    AudioSource source;
        [SerializeField] AudioClip mainmenu;
        [SerializeField] AudioClip firstlvl;
        [SerializeField] AudioClip secondlvl;
    
    public void Start()
        {
            if (SceneManager.GetActiveScene().buildIndex == (1))
            {
                source.clip = firstlvl;
                source.Play();
    
    
            }
    
            if (SceneManager.GetActiveScene().buildIndex == (7))
            {
    
                source.clip = secondlvl;
                source.Play();
    
            }
    
            if (SceneManager.GetActiveScene().buildIndex == (0))
            {
                source.clip = mainmenu;
                source.Play();
    
            }
        }

Calling AudioSource.Play() in the Update method will restart the clip at everyframe, so you probably just get to hear the first 0.0167 seconds of you clip over and over and over.