Can not play a disabled audio source

hello everyone
i am getting problem with unity audio. Here is my code.
in start function.

int iMusic = PlayerPrefs.GetInt ("Music", 1);

if (iMusic == 0) 
    GameManager.playMusic = false;
else
	GameManager.playMusic = true;
			
GameObject.DontDestroyOnLoad (gameObject);
audio.enabled = true;
if (GameManager.playMusic)
    audio.Play ();

here is my other function to stop and start music

	public  void musicOnbOff(){
		gameObject.audio.enabled = true;
		
		if (GameManager.playMusic) {
			gameObject.audio.Play ();
		}
		if (!GameManager.playMusic) {
			gameObject.audio.Stop();
			
		}
	}

when i start the game audio is playing. what when i am trying to stop and play audio it does not work.
audio stop not working. when i call audio.play it gives error.
Can not play a disabled audio source
i can see audio source is attached and it is enabled but i cann’t get the problem.
thanks

Hi Guys Just Replace the audio.play() with this one
AudioSource.PlayClipAtPoint("the Audio To Play its from the type AudoClip ", transform.position);

Is this script attached to the object that has the AudioSource? If so, is this object disabled? Finally: if the script is attached to the right object and the object is enabled, maybe you have attached the same script to another object by mistake. You can check this by adding this line to the Start function:

void Start(){
    print("I'm attached to "+name);
    ...

If this message appears twice in the console view, then you have the script attached to more than one object - and the messages tell to which objects.