Ticket Created

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) 

  • Thanks for the update. For #1, I'm trying to use SystemButton to replace the icon for the NEXT/PREVIOUS buttons with icons that look like FWD/BKWD buttons.

    The goal here is to essentially hide from the user that the feature is implemented by remapping the NEXT/PREVIOUS buttons: by changing the icon, the user will just see a FWD/BKWD button, click it, and it will move the playhead. They don't have to know that under-the-hood, it's really just the next/previous button with a whole bunch of hacky code attached Slight smile

    So the scenario I'm trying to set up on the VV3 is:

    <PREV (BKWD icon)> <PLAY> <NEXT (FWD icon)>

        <VOLUME> <...>

    When I do this however, I end up with a blank image on the VV3 (while the image shows correctly on the BB watches).

    RE: simulator issues. I basically don't use the simulator for development: it's mostly unusable for serious music player development: too many crashes and differences with devices. I'll occasionally smoke-test using it, or maybe use it to test out some networking code, but anything related to playback controls (especially finnicky device dependent code), I just do on the watch themselves.

  •  I would like to give an update on a few things regarding these reports.

    Bug 1: SystemButton on VVA3
           I'm not seeing the issue with this one. The only time I see an issue is when you use a Media.SystemButton for a PLAYBACK_CTRL_SKIP_FWD/BKWD However, this appears to be crashing because of bug 3 (PLAYBACK_CONTROL_SKIP_FWD/BKWD on VVA3 causes crash) So I expect fixing bug 3 would resolve this one as well. I'm able to use any other PLAYBACK_CONTROL_* successfully.  I'm able to return an image from MySystemButton().getImage with no issue, and it is displaying on the device.
    Am I missing something on this one?

    Also, while exploring bug 1 I've been running into very consistent Simulator crashes whenever the app has a Media.SystemButton() in it. Have you seen simulator crashes?

    Bug 2: Setting a CustomButton as the HotKey
            Yes, I'm seeing this bug.

    Bug 3: PLAYBACK_CTRL_FWD/BKWD crashing media player on VVA3
            Yes, I'm seeing this. Attempting to SKIP_FWD/BKWD results in playback stopping and you need to re-configure playback. I don't know if this is the behavior we would expect from a media playback crash, but either way it is a problem.

    Bug 4: Record-Scratch sound
            I have heard the record-scratch sound intermittently with SKIP_FWD/BKWD I have added a ticket for this bug as well.

    Bug 5 Skipping FWD/BKWD causes you to lose your current Playhead position
            This one slipped by in the comments, I will look into this next.

    If you have any more info or clarifications for Bug 1 please let me know. For the others that I've reproduced, I will move on to the engineering team to find solutions. I'm sure it is frustrating to not to have 1 consistent way to control SKIP_FWD/BKWD between all devices... I apologize for that and we will work to get it resolved.

  • 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.