Why PlayOneShot is not working? C#

I have tried everything, but I can’t find why. Here is the script:

public AudioClip clip;
private AudioSource fx;
GameObject music;

void Awake() {
	fx = GameObject.Find("_GM").GetComponent<AudioSource>();
	music = GameObject.Find("_music");
}

IEnumerator ChangeLevel () {
		float fadeTime = GameObject.Find("_GM").GetComponent<Fading>().BeginFade(1);
		yield return new WaitForSeconds(fadeTime);
	SceneManager.LoadScene(2);
}

void OnTriggerEnter2D (Collider2D col) {
	if (col.gameObject.tag == "center") {
		StartCoroutine(ChangeLevel());
		fx.PlayOneShot(clip, 1f);
		Destroy(music);
	}
}

}

Nothing worked :frowning: if it is a bug?