Audio Use Cases and Troubleshooting with HeadSpin
Bluetooth Audio Troubleshooting
In many cases, the Bluetooth audio system works to allow testers to experience audio testing with remote devices as if the devices were in-hand. However, Bluetooth audio is not an exact one-to-one replication of physical or wired audio due to the nature of Bluetooth programming; specifically, the different Bluetooth profiles can cause behavior that differs from the behavior seen with physical audio components. To assist you with your testing, we have compiled some common use cases you may encounter and suggested troubleshooting tips that may help you if your tests are not providing the expected results.
Getting Started: Use Cases/Case Studies
Below we've listed some common use cases, their interaction with Bluetooth audio profiles, and the likelihood the scenario will work in a HeadSpin testing environment. Users should map their use case to one of these common use cases if possible, to help with troubleshooting diagnosis. If your use case does not seem to compare with any of the use cases below, contact HeadSpin for assistance.
Use Case 1: Audio or video playback
- You're using an app with audio where audio is played back to you but no microphone is needed (like Spotify, YouTube, Twitch, etc).
- In this case, the application essentially tells the phone that it's streaming music and does not need microphone access. This causes the phone's OS to place the Bluetooth in A2DP mode (see our audio setup documentation for what that means technically).
- The app and Bluetooth play high-quality audio.
- This use case works as expected.
Use Case 2: Making a phone call
Use Case 3: Voice notes
Use Case 4: Smart assistant
Often, users see the active speaker/microphone in our UI and assume this indicates that all audio components are working.
These icons actually mean that audio is being recorded locally and is sent to the HeadSpin platform from the physical device. Depending on how the app and OS are interacting, the audio stream may not be reaching the app properly. In these cases, either Bluetooth is not connected, or some of the Bluetooth profile issues described here are present. For troubleshooting tips regarding these issues, see below.
Troubleshooting: Microphone and Bluetooth Profiles
If you are experiencing unexpected behavior with the microphone while testing, review the following:
1. Is the app in question expected to work with Bluetooth hardware, such as Bluetooth headsets? As described above, applications that support Bluetooth headsets should work normally with HeadSpin devices. If they do not, there is likely a bug in the application's handling of Bluetooth profile switching.
- If you are the developer, refer to our audio setup guide to try resolving the issue.
- If you are not the app developer, we recommend filing a bug report with the app.
Note: When comparing with consumer headphones, place your phone in a different room from the Bluetooth headphones to check if Bluetooth microphone support is working. Many apps accidentally rely on the physical microphone in the phone to capture audio while using Bluetooth headphones, which can be misleading.
1. If the app doesn't support profile switching or you need to test despite a bug, we may be able to provide a workaround. A third party application can be used to force the phone to switch profiles (see our Bluetooth Setup guide in the Manual Profile Switching section). In some cases, this may allow your tests to work as expected; however, this is app-dependent, and in many cases it will only enable microphone input OR audio output but not both simultaneously. In some cases automation of this workaround may be possible. Please contact support for more details.
HeadSpin's platform does not support wired audio testing, although we do provide other products for physical audio capture and playback. Please reach out to HeadSpin for more details regarding our AVBox audio testing solution.
Troubleshooting: App Support and Bluetooth Profiles
Generally speaking, apps have to be capable of handling profile switching - as with the Use Cases 2 and 4 described above, users often need to be able to switch quickly between microphone use and high quality audio streaming.
However, some apps do not properly support Bluetooth profile switching, and some device models and/or mobile OS versions may behave differently than expected; because of these scenarios, apps may work on some devices and not others. When this happens, we recommend double-checking the following:
- On Android devices, applications intending to record audio should refer to AudioManager.startBluetoothSco() and ensure that their audio input and output are using the correct audio stream, e.g., AudioManager.STREAM_VOICE_CALL or something similar.
- On iOS devices, applications must allowBluetooth and select the appropriate audio input/output for audio routing.