Audio.PlayOneShot doesn't work

Hey… is there a way to run playOneShot with audiosource?
This script give me this error: The best overloaded method match for UnityEngine.AudioSource.PlayOneShot(UnityEngine.AudioClip)’ has some invalid arguments`

public AudioSource Audio1;
	public AudioSource Audio2;
	public AudioSource Audio3;
	public AudioSource Audio4;
	public AudioSource Audio5;
	public AudioSource Audio6;

	
	// Update is called once per frame
	void Update () {
	
    if (Input.GetKeyDown (KeyCode.N)) {

	Audio1.volume = 0.0f;
	Audio2.volume = 0.0f;
	Audio3.volume = 0.0f;
	Audio4.volume = 0.0f;
	Audio5.volume = 0.0f;
	Audio6.volume = 0.0f;

	}


	if (Input.GetKeyDown (KeyCode.A)) {
	StartCoroutine (WaitMethod ());
	} 
	else if (Input.GetKeyDown (KeyCode.D)) {
	StartCoroutine (WaitMethod2 ());
	}
	}
	


	IEnumerator WaitMethod(){
	yield return new WaitForSeconds(2f);
	audio.PlayOneShot(Audio1);
	audio.PlayOneShot(Audio2);
	audio.PlayOneShot(Audio3);
	
	audio.Play();
	}


	IEnumerator WaitMethod2(){
	yield return new WaitForSeconds(2f);
	audio.PlayOneShot(Audio4);
	audio.PlayOneShot(Audio5);
	audio.PlayOneShot(Audio6);
		
	audio.Play();
	}

}

Thank you in advance and happy easter to all.

The reason its not working is because you are using

audio.PlayOneShot(AudioSource); but it should be

 audio.PlayOneShot(AudioClip);

So trying using this snippet

public AudioClip Clip1;

void Update()
{
 if (Input.GetKeyDown (KeyCode.N)) {
audio.Stop();
 
}

if (Input.GetKeyDown (KeyCode.A)) {
StartCoroutine (WaitMethod ());
} 

}

IEnumerator WaitMethod(){
yield return new WaitForSeconds(2f);
audio.PlayOneShot(Clip1);
}

If you want to mute everything … the best thing I can suggest from my own experience is: attaching a script with something like this on to the object with the AudioListener component (usually the main camera)

if (Input.GetKeyDown (KeyCode.Space))
{
			this.gameObject.GetComponent<AudioListener>().audio.volume = 0.0f;
}

I just tried this out and it works perfectly fine assuming this is what you need…

Note: If you want to play sound you need to re-set the volume back to 1
Note 2: This will MUTE the sound, not pause it if you need to pause you might need something like this:

public AudioClip gameClip;
private bool pausing = false; //Use key to swap if(pausing){pausing = false;} else {pausing = true;}
 
void Update()
{
if(pausing)
   {
    audio.Pause();
   }

}   

Note 3: And if you need to stop all audio what-so-ever (swapping levels etc.) you might want to use audio.Stop();