Closed Bug 1071331 Opened 11 years ago Closed 10 years ago

[Music] EarPods remote control NOT working on FFOS device

Categories

(Firefox OS Graveyard :: Gaia::Music, enhancement)

ARM
Gonk (Firefox OS)
enhancement
Not set
normal

Tracking

(tracking-b2g:backlog, b2g-v2.0 affected, b2g-v2.1 affected, b2g-v2.2 affected)

RESOLVED DUPLICATE of bug 813260
tracking-b2g backlog
Tracking Status
b2g-v2.0 --- affected
b2g-v2.1 --- affected
b2g-v2.2 --- affected

People

(Reporter: ychung, Unassigned)

References

()

Details

(Whiteboard: [2.1-exploratory-2][priority])

Attachments

(5 files)

Description: When the user plugs in an EarPods to a Firefox OS device, the audio is heard through the earphone. However, the remote control functions are not recognized. Repro Steps: 1) Update a Flame device to BuildID: 20140922063004. 2) Plug in an EarPods with remote control. 3) Open Music app, and play any song. 4) Try to change the volume or pause the music with the remote control. Actual: The control does not work at all. Expected: The music pause or plan when the user clicks the mittle button on the remote contorl. (On Android, the volume button does not work. However, play/pause function work with Music, and next(double click) works too. The middle button also works to answer/end a phone call.) Environmental Variables: Device: Flame 2.1 BuildID: 20140922063004 Gaia: 689c4ad4d8c3e4aa95805a2e49ae6cf786a1ae91 Gecko: 185fc54d29c1 Version: 34.0a2 (2.1) Firmware: V180 User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0 Notes: The remote control does not work to answer or end a phone call. It DOES work on Android. Repro frequency: 100% See attached: logcat, video http://youtu.be/3xaXUqVyWSs
This issue also reproduces on Flame 2.0(319mb, JB), Flame 2.1(319mb, JB), Flame 2.2(319mb, JB),; Flame 2.0(319mb, KK), Flame 2.1(512mb, KK), Flame 2.2(319mb, KK): Flame 2.0 (319mb) Environmental Variables: Device: Flame 2.0 Build ID: 20140922000331 Gaia: 0658006be8a00fdb5931ee15a0aa353a3ab231ba Gecko: c0086da55273 Version: 32.0 (2.0) Firmware Version: v123 User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0 Flame 2.1 (319mb) Environmental Variables: Device: Flame 2.1 Build ID: 20140922000332 Gaia: b3f9b97d16a1ab55f80239d63c1a85c3da3d39ad Gecko: 2c6e3261c47b Version: 34.0a2 Firmware Version: v123 User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0 Flame 2.2 (319mb) Environmental Variables: Device: Flame 2.2 Build ID: 20140922040204 Gaia: c7ef0bf06ce1c98cbe68aa52e2ecd862acb23e9c Gecko: 53f7f5b6d7bf Version: 35.0a1 Firmware Version: v123 User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0 Flame 2.0 KitKat Base (319mb) Environmental Variables: Device: Flame 2.0 Build ID: 20140922082143 Gaia: 0658006be8a00fdb5931ee15a0aa353a3ab231ba Gecko: dc61f92b855e Version: 32.0 (2.0) Firmware Version: User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0 Flame 2.1 KitKat Base (512mb) Environmental Variables: Device: Flame 2.1 Build ID: 20140922063004 Gaia: 689c4ad4d8c3e4aa95805a2e49ae6cf786a1ae91 Gecko: 185fc54d29c1 Version: 34.0a2 Firmware Version: v180 User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0 Flame 2.2 (319mb) Device: Flame 2.2 BuildID: 20140922043003 Gaia: 3802009e1ab6c3ddfc3eb15522e3140a96b33336 Gecko: 5e704397529b Version: 35.0a1 (2.2) Firmware: V180 User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0 The remote control on EarPods does not work. ============================ Unable to verify the issue on Open C. Earphones with microphone (3 rings on the connector pin) are not recognized by Open C: Open_C 2.0 Environmental Variables: Device: Open_C 2.0 Build ID: 20140922000331 Gaia: 0658006be8a00fdb5931ee15a0aa353a3ab231ba Gecko: c0086da55273 Version: 32.0 (2.0) Firmware Version: P821A10V1.0.0B06_LOG_DL User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0 Open C 2.1 Environmental Variables: Device: Open_C 2.1 Build ID: 20140922000332 Gaia: b3f9b97d16a1ab55f80239d63c1a85c3da3d39ad Gecko: 2c6e3261c47b Version: 34.0a2 Firmware Version: P821A10V1.0.0B06_LOG_DL User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0 Open C 2.2 Environmental Variables: Device: Open_C 2.2 Build ID: 20140922040204 Gaia: c7ef0bf06ce1c98cbe68aa52e2ecd862acb23e9c Gecko: 53f7f5b6d7bf Version: 35.0a1 Firmware Version: P821A10V1.0.0B06_LOG_DL User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Whiteboard: [2.1-exploratory] → [2.1-exploratory-2]
[Blocking Requested - why for this release]: I can confirm this also with the stock headphones that came with different FxOS devices. I also know our Tako partner has been complaining about this. Flagging to block nom because headphone controls should be able to do basic functionality like play/pause, skip, etc.. as a tablestake option. but knowing this could be "new featurish", i'm fine with minusing it for .next.
blocking-b2g: --- → 2.1?
Dominic, Could you please investigate?
Assignee: nobody → dkuo
Flags: needinfo?(dkuo)
Whiteboard: [2.1-exploratory-2] → [2.1-exploratory-2][priority]
The headphone (see attached screenshot) with multiple buttons(play,pause,forward,back) does not function on the dial, music, and video app. On the Motorola, ZTE, Sony, generic (screenshot attached) headphone have low volume when plugged into the device and the receiver can not hear the caller, also if the user does not hold the center button on the headphone, the user can not hear vocals in the music app Alcatel - The volume is low and the center button does not increase the volume Motorola without button - No issue, works fine
Attached image IMG_0002.jpg
Attached image IMG_0003.jpg
For the headphones wired remote controls, currently we only handle the cases for answer/end the calls, by using the |headset-button| system messages in callscreen. For the media wired remote controls, we don't have such system messages yet so it's expected for now that, the wired remote controls are not functional. Since the bluetooth AVRCP already use the |media-button| system messages to send the remote commands, the wired remote controls should also use it if we want to implement the new |media-button| system messages, it probably something like: "media-play-button-press", similar to what the AVRCP system messages use. This is a feature request so I think we better involve product people first. Francis, would you please help to initiate this in the product backlog if it might be a 2.1 blocker? thanks!
Flags: needinfo?(dkuo) → needinfo?(frlee)
Severity: normal → enhancement
Feature request - moved to backlog for consideration in 2.2
blocking-b2g: 2.1? → backlog
Hmm, is this a dupe of bug 806262?
(In reply to Jim Porter (:squib) from comment #9) > Hmm, is this a dupe of bug 806262? Yes, play/pause is part of the wired remote controls, let's dupe bug 806262.
See Also: → 1050619
per Bruce's confirmation, it is already in backlog.
Flags: needinfo?(frlee)
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
Luke, please read comment 7 if you are seeking the information about the wired controls.
Dominic, Thanks!
feature-b2g: --- → 2.2?
Whiteboard: [2.1-exploratory-2][priority] → [2.1-exploratory-2][priority] [Tako_Blocker]
Assignee: dkuo → nobody
The above patch changes event codes for some headsets to the expected. It also does single, double and long press detection. The system broadcast messages generated are the same bluetooth generates.
This is the change neede in the Music app to get bluetooth and wired headset buttons working.
Attachment #8515967 - Flags: feedback?(fabrice)
Comment on attachment 8515967 [details] [diff] [review] Bug-1071331-Add-support-for-headset-button-in-Music-app.patch Review of attachment 8515967 [details] [diff] [review]: ----------------------------------------------------------------- Redirecting review to the music app owner.
Attachment #8515967 - Flags: feedback?(fabrice) → feedback?(dkuo)
Comment on attachment 8515950 [details] [diff] [review] Bug-1071331-Make-wired-headsets-work-better.patch Review of attachment 8515950 [details] [diff] [review]: ----------------------------------------------------------------- In shell.js, I think that all this timeout based flags is fragile. Long/short press should be just done by looking at event timing. Michael, can you look at the EventHub changes? ::: b2g/chrome/content/shell.js @@ +453,5 @@ > + this.headsetButtonLongActive = 1; > + this.headsetButtonLongTimeout = setTimeout(() => { > + clearTimeout(this.headsetButtonLongTimeout); > + this.headsetButtonLongActive = 0; > + }, 2000); hm, so what happens after two seconds? It's not a long press anymore? @@ +471,5 @@ > + this.headsetButtonShortTimeout = setTimeout(() => { > + clearTimeout(this.headsetButtonShortTimeout); > + this.headsetButtonShortActive = 0; > + gSystemMessenger.broadcastMessage('media-button', 'media-play-pause-button-release'); > + }, 300); I'm not a big fan of delaying a single press by 300ms. ::: widget/gonk/libui/EventHub.cpp @@ +855,5 @@ > event->type = iev.type; > event->code = iev.code; > event->value = iev.value; > + > + // correct event->code for some PHFs what's a PHF? Are these code stable? ie, do we risk to have some unexpected translations?
Attachment #8515950 - Flags: feedback?(mwu)
Attachment #8515950 - Flags: feedback?(fabrice)
Attachment #8515950 - Flags: feedback-
Comment on attachment 8515950 [details] [diff] [review] Bug-1071331-Make-wired-headsets-work-better.patch Review of attachment 8515950 [details] [diff] [review]: ----------------------------------------------------------------- ::: widget/gonk/libui/EventHub.cpp @@ +856,5 @@ > event->code = iev.code; > event->value = iev.value; > + > + // correct event->code for some PHFs > + switch (event->code) { This is definitely the wrong place to do such a translation. The right place to do this is in the key layout configuration files. These are located in /system/usr/keylayout on device. These files define how to translate scancodes to key codes that gecko can understand. Information about which input configuration files are loaded is displayed on Gecko startup.
Attachment #8515950 - Flags: feedback?(mwu) → feedback-
Comment on attachment 8515967 [details] [diff] [review] Bug-1071331-Add-support-for-headset-button-in-Music-app.patch Torbjorn, We use a shared module called "Media Remote Controls"[1] to handle the remote commands from AVRCP(bluetooth) and IAC in music app. If the wired signals also fire the "media-button" events, then those events should be handled in [1] as well, so if it's needed please modify [1] instead of adding the remote logic in the other files, thanks. [1] https://github.com/mozilla-b2g/gaia/blob/master/shared/js/media/remote_controls.js
Attachment #8515967 - Flags: feedback?(dkuo) → feedback-
Suggest to remove it from 2.2, because it's not in 2.2 proposed feature list, and no one is working on it now.
feature-b2g: 2.2? → ---
Whiteboard: [2.1-exploratory-2][priority] [Tako_Blocker] → [2.1-exploratory-2][priority]
blocking-b2g: backlog → ---
This looks like a dupe of bug 813260. If that's wrong, feel free to reopen this.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: