skip vs fast-forward?
Hello,
I just downloaded DoggCatcher. I have a BT3030 bluetooth headset... when I hit a skip button, DC fast-forwards.
How can I make it _skip_? Long-pressing the buttons on this bluetooth headset does not do anything. (skip works fine in the native android music app)
Thanks!
-denis
There is an inconsistency between DC and the music player with regards to skip and ff. DC does ff when you press the next button on the bt3030. The reason for that is that most bluetooth devices have prev/next buttons instead of rew/ff buttons, but when listening to podcasts, it's much more common to rew/ff. When listening to music, prev/next is used more often. So I have the buttons that are most common to the functions that are most common...even though the buttons don't match what they are doing.
One of the issues, is that the avcrp codes don't make it directly to the app. Android passes along some events to the apps, which don't always seem to match avcrp codes.
I think what really needs to be done is for DC to be able to detect all of the individual events that android can send to the app, then let the user configure which action should happen when the event is received.
I created an issue for this and scheduled it for the release after next. I'm probably only going to do some analysis at this point so I know what's involved. Then I'll schedule the implementation.
http://mantis.snoggdoggler.com/view.php?id=579
Btw, I think the android music player is handling the long-press and sending a different command to the player. At least that what I remember when I reviewed the music player code last. But long presses could also be added to the list of 'detectable events' I mentioned earlier.
Thanks for all the research.
So what I found is that android supports responding to ff/rew and next/prev, *but* I can't seem to find any *devices* either wired or bluetooth that support ff/rew. Whatever I can find supports only next/prev.
If anyone is aware of a device (wired or bt) that supports ff/rew, please let me know so I can pick one up.
I still think it's the right thing to do to keep the next/prev buttons on the wired and bt devices doing rew/ff for podcasts. What I plan on doing is making a long-press on the next button do the same thing as what happens when you long-press on the next button in the ui...flag the current item as done and play the next.
This gives us access to all the capabilities of the wired/bt headsets...even though the next/prev buttons are mapped to ff/rew functions.
>If anyone is aware of a device
>(wired or bt) that supports ff/rew,
> please let me know so I can pick one up.
The Jabra Cruiser (car speakerphone) supports next/prev and ff/rew. This works well with the Android Music player.
http://www.amazon.com/Jabra-Cruiser-Bluetooth-Car-Speakerphone/dp/B002PY...
Thanks, I just ordered it.
I read a review (I think on cnet) and it only mentioned next/prev for the cruiser.
Eric,
While you are trying to figure out the right way to fix this, maybe you can add an additional choice to the "Skip Seconds" option...
It would be great if you add "skip to next podcast" after the 300 sec option... Then, the event from the Bluetooth device is the same and people who prefers skip/prev can get what is desired.
Thanks!!!
I'm pretty sure that what I'm going to do is have a list of the button events (ff, rew, ff-long, rew-long, play/pause, etc) and then for each event you can choose the action to perform (ff, rew, next). That should cover all the different devices with different buttons and capabilities.
That's interesting, I'll take a look and see how well that works. I updated this issue with a reference to this post and moved the issue to soon.
I've got a BT3030 also. I actually used it almost exclusively during development of the bluetooth capabilities.
It seems that with bluetooth, there isn't any notion of long pressing. To an android app, it just looks like a lot of single presses really close together. The problem is that each bluetooth device looks differently (different spacing between the presses). I tried to simulate a long-press with the BT3030 but couldn't get it working.
I may take another stab at it. I mainly wanted to get the bluetooth basics out and stable, then out would try to push the boundaries. Another option would be to have configurable actions to take when you single press the buttons.
Hi Eric. Thanks - how about double-pressing to skip? Android headsets do this sort of thing - single button for play/stop vs next. Maybe here you can do single press to fast-forward, vs double to skip?
Double presses are possible to detect with the wired headset but with bluetooth, each device seems to behave differently. I'm not sure I'd be able to come up with something that will work for all of them but I'll take a look.
ok. if all else fails, here is another suggestion :)
- if the feed is paused, ff skips
- if the feed is playing, ff fast forwards
unless this is how it works now (i don't have my headset handy, so i can't check)
still find myself really wishing for a way to skip. maybe:
- if stopped, skip to next, else skip by N minutes
- if I press skip 3 times within 3 seconds (or something along these lines) skip to the end
Yep, I moved the issue to soon.

Hi Eric,
I am a big fan. I think that skip and FFWD are two different AVRCP codes. The BT3030 that you use for testing only supports the skip message. And this skip command is currently wired up as FFWD in DoggCatcher.
When I use a Nexus One, Jabra Cruiser (car speaker) and the Android Media Player, tapping forward goes to the next track and holding it down for a second fast forwards within the song (as expected). When I switch to Doggcatcher, tapping forward should skip, but instead fast forwards. And holding down forward should fast forward, but nothing happens.
So I think it is the bluetooth device that detects short vs. long presses and sends a different AVRCP code for skip or FFWD. Hopefully the fix is just to implement the missing AVRCP message. See links below.
Thanks,
-HP
---------------
AVRCP spec - page 37 lists "fast forward" vs. "Forward" as two different codes
http://www.bluetooth.com/SiteCollectionDocuments/AVRCP_SPEC_V14.pdf
BT3030 - described as only supporting "next track" function (i.e. forward/skip)
http://www.jabra.com/sites/Jabra/GNImages/Products/WirelessHeadset/BT303...
BT3030 users referencing the fact that it only supports "skip"
http://forum.xda-developers.com/showthread.php?t=352497
Jabra Cruiser manual - page 4 describes the difference in tap vs. press - although not in the context of music playback. But it is clear that the speakerphone is the one detecting the length of the button press and taking a different action based on that - e.g. redialing the last number dialed or sending a different AVRCP code.
http://www.jabra.com/sites/Jabra/GNImages/Products/CRUISER_Manual_8178.pdf