get Camera Provider
Util function to get a camera provider, specially since the get()
operation is blocking and can throw exception (although it might be very rare) suspendCoroutine is used to treat this blocking and synchronous get()
call to an asynchronous call that can be used with coroutines