A camera can only be used by one application at a time on most systems. If a video call app is still running in the background, the next app to ask gets nothing.
Permission layers add a second gate. The system grants camera access per application, and a browser then grants it again per website. Either can be off.
Hardware controls are the simplest cause and the easiest to miss: a physical shutter, a function key, or a switch on the laptop edge.
A black image with the camera light on means access succeeded but the sensor is blocked — a very different problem from an error saying no camera was found.