The camera indicator dot appears if a camera session is active in the app, which happens (for example) when you open the Camera app on your phone to take a picture. The green dot appears right when the camera is activated, and its presence does not necessarily mean that the app is actually capturing anything — think of it more like “ready to capture or actively capturing” so that apps can implement viewfinders, filters, and so on, as well as actually capture images/video.
These camera sessions must be manually stopped in code by calling a stopRunning()
method on the camera session (for example, you go to another view which doesn’t require camera access), or they can be stopped by the system for situations like a user leaving the app (as iOS doesn’t allow apps to use the camera in the background). iOS can’t tell which of an app’s user interactions necessitate stopping a camera session, which is why developers have to do so manually in code. In this case, it’s highly likely that Instagram has a code path to take a user from a camera view to a non-camera view, except they forget to stop the camera session.
The microphone indicator dot appears if an app is capturing audio from the microphone. Contrary to the camera indicator icon, this does mean that the app is capturing audio. That’s because there’s no notion of a viewfinder for audio; an app has no reason to access the microphone except to actively record/process input audio.
More importantly, neither indicator implies that data from the camera and/or microphone is being transmitted anywhere off of the device.