Navigation instructions doesn't play via bluetooth headphones (but phone speaker)

REPRODUCIBILITY: always
OS VERSION: 4.1.0.24
HARDWARE: X10 II
UI LANGUAGE: cs
REGRESSION: no

DESCRIPTION:

OSM Scout and Pure Maps applications are using “navigator” audio (resource?) class by setting NEMO_RESOURCE_CLASS_OVERRIDE environment variable. With this resource class, music player is paused when application is playing voice instructions, and resumed after. But this resource class also affects pulseaudio routing. Navigation instructions are played via phone speakers even bluetooth headphones are connected (or car speakers are connected via bluetooth). But music is routed via headphones / car speakers properly.

When “game” resource class is used, voice instructions are routed to bluetooth headphones properly and even music player is paused and resumed properly. But using “game” class sounds weird for map/navigation software.

Routing may be fixed easily. It is just necessary to add route_audio flag to navigator group in /etc/pulse/xpolicy.conf:

[group]
name   = navigator
flags  = set_sink, set_source, route_audio
sink   = droid.output.media_latency@equals:"true"
source = droid.input.builtin@equals:"true"

STEPS TO REPRODUCE:

  1. pair and connect bluetooth heaphones
  2. play some music in Media application, it should be routed via bluetooth
  3. open OSM Scout, settings page…
  4. download some navigation voice
  5. select voice, play sample - it is routed to phone speaker

EXPECTED RESULT:

  1. should be routed to bluetooth headphones

ACTUAL RESULT:

  1. voice is routed to phone speakers

ADDITIONAL INFORMATION:

resource class override support: Implement more full resource policy features. · qt/qtmultimedia@1c5ea95 · GitHub
issue with paused media player: Playing audio file with QMediaPlayer pause Media player - #5 by karry
Pure maps issue: [SFOS] Prevent voice navigation stopping other audio · Issue #120 · rinigus/pure-maps · GitHub

4 Likes