Problem with MediaPlayer.prepare()

I have a problem where I am trying to play a sound using a MediaPlayer.
I had an error that was stating that I was using the start() before the MediaPlayer had completed its preparation. I thought I could just add the prepare() option but that gave me an illegal statexpression error.
I read that this was because the prepare stops the main thread so am using a couroutine newSingleThreadContext.
That does not work, gets the same exception, and I dont know why.

Anyone help?