Ticket Created
over 5 years ago

WERETECH-7661

WERETECH-7662

WERETECH-7663

WERETECH-7853

WERETECH-7854

Assorted Media Player Button Bugs Across Devices

I've been experimenting with some of the media player button handling code across different devices and run into a few issues. Below is a table which summarizes my findings.

For context, Runcasts currently implements fast-forward/rewind using some pretty crazy hacks which re-map the skip-previous / skip-next buttons into changing the ActiveContent playhead. Needless to say, I'd love to strip that code out and use the normal approach. Unfortunately, the various options below all suffer some drawback on one of the devices we're trying to support.

Feature Vivoactive3 Button-Based Button-Based Hotkey
SystemButton BUG [1] OK OK
CustomButton OK OK BUG [2]
PLAYBACK_CONTROL_SKIP_BACKWARD/FORWARD BUG [3] OK [4] OK
  1. Image doesn't show, button doesn't work              
  2. Image shows, button event doesn't fire when clicked                    
  3. Crashes, no CIQ.YML generated
  4. Not a bug per-se, but a record-scratch occurs during skip, hacks to implement fast-forward/rewind avoid the record-scratch sound (at the expense of being slightly delayed when starting) 

Parents
  •  , on Bug 2, could you clarify what 'Button Based Hotkey' is referring to? Is it holding 'Down' to access the music player?

    I'm attempting to reproduce this, but I'm not seeing it, so I may be missing something. If you were able to provide any specific steps to reproduce, that would be super helpful. Slight smile

Comment
  •  , on Bug 2, could you clarify what 'Button Based Hotkey' is referring to? Is it holding 'Down' to access the music player?

    I'm attempting to reproduce this, but I'm not seeing it, so I may be missing something. If you were able to provide any specific steps to reproduce, that would be super helpful. Slight smile

Children
  • Yeah, if you have a change to provide a code example, that would be great. Slight smile

  • Ahh okay, I think I understand the confusion here.

    This isn’t a bug in a current version of Runcasts, this is a bug an API (CustomMenu) that I would like to use in a future version.

    To replicate the issue you would have to have an audio player test harness which returns a `CustomMenu` object as the first item of the `PlaybackProfile.getPlaybackControls()` method.

    I might be able to provide a code example a bit later, if not of the whole player, at least a relevant `PlaybackProfile` definition.

  • Hmm, I'm still struggling to reproduce. Here's the steps I'm taking, maybe you can point out if something isn't right.

    1. Menu
    2. Runcasts
    3. Settings
    4. Set 'Next/Prev Action' to Skip 30 Secs
    5. Set 'Primary Button' to Previous
    6. Restart
    7. Open Music Player
    8. Runcasts
    9. Podcasts
    10. Select Podcast
    11. Start Playback
    12. On main playback back, '...', 'Back', and 'Play/Pause' buttons
    13. 'Back' skips back 30 seconds
    14. '...'
    15. 'Next' skips forward 30 seconds

    All the buttons are visible and seems to work ok.

  • Sure thing!

    On the button-based watches, the first control returned from the `getPlaybackControls()` method is rendered on the player’s main/primary page along with the ‘Play’ button and the ‘Detail’ button (‘...’). The rest of the of the controls in the array are rendered on the secondary/detail page (the view that is pushed when you click ‘...’).

    What’s interesting here is that if you set a `CustomButton` to the second element of the `getPlaybackControls()` array, everything works fine. The control renders properly, and the `onCustomButton` handler is called when the button is clicked. This is the non-hotkey configuration that works.

    When you set the `CustomButton` as the first control (what I was calling ‘primary button’ but I think I heard Garmin folks calling it the ‘hotkey’), then something strange happens. The button renders just fine, however, when you go to click it, nothing happens. It looks like, for some reason, the `onCustomButton` handler isn’t being called. This is the non-working hotkey configuration.