Recently I encountered a strange issue on my Pixel 2 XL and thought it was worth sharing the problem, investigation and solution in case anyone experiences a similar issue.
One day I noticed that the videos I was recording on my Pixel 2 XL seemed silent. When playing back some videos, if I turned up the volume to it’s maximum I could just about hear loud events in the videos and a bit of hiss/static. This seemed odd as I hadn’t noticed volume problems during other regular activities that require the microphone (e.g. phone calls). As I have previous in-depth experience with audio on Android and try to minimise phone upgrades for cost and environmental reasons, I decided to investigate.
The investigation went through a number of stages:
- First, I visually inspected the parts of the phone concealing microphones in case any dirt was preventing the sound from reaching the microphone. Everything seemed relatively clean.
- Next, I tried recording video using both the front and rear cameras, as I recalled reading that camera application sometimes uses different microphones depending on which camera is used. Unfortunately the result was the same with both cameras.
- As I hadn’t noticed the problem when using the microphones for other purposes, I tried using a couple of audio recording apps. Both were able to record good quality audio with no problems.
- To be sure it wasn’t a problem with the camera application I cleared its storage and cache, uninstalled updates, and ran the phone in safe mode and tried an alternative camera application. Still, the problem remained.
- Thus far, evidence was pointing towards problems only occurring when recording video. I was aware that Android allows developers to specify different audio sources when recording and decided to remind myself of what those different audio sources were. Lo and behold, Android has a dedicated “camcorder” audio source. I went back to the alternative camera application (Open Camera) and was pleased to see that, although “camcorder” was the default audio source, I could select a different audio source. I selected the “default” source, recorded a video and played the video back: it sounded fine!
- Although I was happy to keep using Open Camera as a workaround, I still wanted to get to the bottom of the issue. Tracing the audio source selection down through the Android source code, it looked like the selection of actual microphones was handled in device-specific code. This seemed reasonable, as details of which microphone to use for what purpose is device-specific. It also meant that if the issue was a software issue it was likely to be affecting many others with a Pixel 2 XL, but a quick search suggested that the issue was not particularly common.
I paused and considered what I knew:
- At least one audio source was broken and at least one worked.
- Despite claiming that the “camcorder” audio source uses a microphone with the “same orientation as the camera if available”, the camera orientation wasn’t affecting the brokenness of the “camcorder” audio source.
- The issue was quite unlikely to be a software problem.
- Affected videos sometimes had no audio and sometimes had very, very quiet audio.
This suggested that one or more of the microphones was either defective or blocked. Of the three microphones on the Pixel 2 XL, two are front-facing and one is on the top of the phone. If the problem was with a single microphone used for any camera orientation, the microphone on top of the phone was the most plausible candidate.
As damaging an already defective microphone didn’t matter, I used a paperclip to carefully remove hidden dirt from deep inside the hole for the microphone on top of the phone. This solved the problem and I was able to revert to using the “camcorder” audio source.
I wonder why the Pixel 2 XL doesn’t use the front-facing microphones when using the front-facing camera. Perhaps the one on top is optimised for picking up ambient noise? All very interesting. 🙂