Sound quality in bluetooth headphones doesn’t change to high

bluetoothdocumentationheadphones

My Bluetooth headset Philips SHB6610 has several profiles. It can work as low-quality sound headset (HFP) and high-quality sound headphones (A2DP). Typically whenever I start to play the music in my favorite media player (Winamp) it switches automatically in high quality. If I receive a call on Skype it switches to low-quality. Even if I am listening to music in the background, once call is finished, it falls back on high quality again.

However, from time to time, it happens that I connect headphones to the computer and they stay in low-quality mode even if I am not in a call. Can I enforce profile manually somehow? How to do this?

The only thing that helps (but not always) is re-pairing of headphones with PC. I am using Windows 7 on Toshiba Satellite Pro P300-1CG laptop, with Belkin Mini Bluetooth Adapter.

Edit: Now I can not keep connection active at all unless I keep Bluetooth device window open. Once I close the window connection breaks.

Best Answer

After several months of experimenting I have learned more about Bluetooth profiles that are supported by my phone: HSF (headset) and A2DP (advanced audio distribution). First profile allows to stream low-quality audio in both directions (e.g. for audio calls on the cell or Skype) and the other one is designed to provide high-quality single-direction audio (e.g. for listening to music).

My Nokia phone perfectly handles these two modes since it knows definitely when I need to switch between profiles (HSF when somebody is calling, A2DP when listing to music). However, it's a different story with a PC. There are many VoIP applications (Skype, VoipDiscount etc.) that may want to use HSF while other audio applications (e.g. Winamp, VLC) will want to use A2DP. Is it not absolutely clear how should an operating system support that. One may say that they should switch to HSF when VoIP applications demand it and switch back when the conversation is over. This sounds like a good solution but it would provide inequality for apps, while the operating system must remain neutral.

Best option would be to allow the user to select from a number of policies which should be used in such conflicts. Unfortunately in all operating systems that I've tried (Mac OS, Ubuntu, Windows 7) there is no support for that. Mac and Ubuntu are better since they at least provide a way to set profile manually, which is not possible on Windows.

EDIT: Android handles this nicely. They have a special permission for apps called "Phone", which allows the app to switch the phone into HSF mode when needed, but otherwise the phone stays in A2DP. Futhermore, apps with "Phone" permission can also stop music playing from other apps when the call is in progress. This way, the user gets to choose which apps can have the permission and thus OS stays neutral.