Closed Bug 1006413 Opened 10 years ago Closed 10 years ago

[Tarako][dolphin][Music][Call] While playing music through bluetooth, answer an incoming call and then hang up, music is paused

Categories

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

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(tracking-b2g:backlog, b2g-v1.3T affected, b2g-v1.4 affected, b2g-v2.0 fixed)

RESOLVED FIXED
tracking-b2g backlog
Tracking Status
b2g-v1.3T --- affected
b2g-v1.4 --- affected
b2g-v2.0 --- fixed

People

(Reporter: bli, Assigned: dkuo)

References

Details

(Keywords: regression, Whiteboard: [sprd305192][partner-blocker][sprd287908])

Attachments

(2 files)

305.70 KB, text/x-log
Details
46 bytes, text/x-github-pull-request
squib
: review+
Details | Review
Attached file logcat
Environment:
---------------------------------------------------
Gaia      c067cc717c4a3bb8b412f28f37d224eb84b639df
Gecko     https://hg.mozilla.org/releases/mozilla-b2g28_v1_3t/rev/8eebf8120dbd
BuildID   20140505164002
Version   28.1
ro.build.version.incremental=eng.cltbld.20140505.203623
ro.build.date=Mon May  5 20:36:32 EDT 2014


Steps to reproduce:
----------------------------------------------------
1. Pair a BT headset
2. Launch music, and choose a song to play in foreground
3. Make a MT call to the test device
4. Answer the MT call
5. Hang up the call


Actual result:
---------------------------------------
The music is paused.


Expected result:
--------------------------------------- 
Resume playing the music


Additional info:
--------------------------------------
Reproduce rate:  60%~70%
Music through a regular headset or otherwise doesn't seem to reproduce this.  This seems only through bluetooth.
Summary: [Tarako][Music][Call] While playing music, answer an incoming call and then hang up, music is paused → [Tarako][Music][Call] While playing music through bluetooth, answer an incoming call and then hang up, music is paused
Summary: [Tarako][Music][Call] While playing music through bluetooth, answer an incoming call and then hang up, music is paused → [Tarako][dolphin][Music][Call] While playing music through bluetooth, answer an incoming call and then hang up, music is paused
Whiteboard: [sprd305192][partner-blocker]
This can only be reproduced with BT headset.

Here is the analysis from Spreadtrum developper.
0. Pair BT headset and play music
1. Incoming call:
   case 'mozinterruptbegin':
   this.playStatus = INTERRUPT_BEGIN;
   It will trigger event mozinterruptbegin and modify playStatus
2. After answering the phone
   It will enter function pause and modify this._statusBeforeSCO:
     this._statusBeforeSCO = PlayerView.playStatus;
   which turns out to be this._statusBeforeSCO==mozinterruptbegin
3.After end call
  it invoke playpause function
  if (this._statusBeforeSCO === PLAYSTATUS_PLAYING)
     PlayerView.play();
  else
     PlayerView.pause();
  

Due to the result of 2, this._statusBeforeSCO === PLAYSTATUS_PLAYING will return false.
As a result, 3 will run PlayerView.pause();
Also reproducible on Flame v1.4.

Gaia      5527784b263755f55b620441fc95a66496fa18cf
Gecko     https://hg.mozilla.org/releases/mozilla-b2g30_v1_4/rev/334e9712f079
BuildID   20140528160208
Version   30.0
ro.build.version.incremental=94
ro.build.date=Tue May 20 09:29:20 CST 2014
blocking-b2g: --- → 1.4?
Moving to backlog been around earlier releases.
blocking-b2g: 1.4? → backlog
Keywords: regression
Thanks to Peipei and the partner's developer(comment 3), base on that information I found the root cause easily and fixed it right away, and apologize I didn't aware this might be a blocker for the certification so I haven't investigate it earlier.

I am attaching the patch and explaining in the next comment.
blocking-b2g: backlog → 1.3T?
Attached file patch
In bug 946556 we have disable the music player when the bluetooth headset is active(SCO is connected), and recover it after the bluetooth headset is inactive(SCO is disconnected). We assumed that before the SCO connection, the play status is |PLAYING|, so after SCO disconnected, the player should resume to |PLAYING|.

The reason this bug happens and not 100% reproducible is because, there are two possible play statuses when the call comes with bluetooth headset, |PLAYING| and |mozinterruptbegin|, while I was implementing that feature, I never encountered the |mozinterruptbegin| case, this might be another regression that caused by moving the ringer tone into system(bug 990003), cause looks like now |mozinterruptbegin| fires earlier then SCO is connected.

The fix is simple, just resume the player when the play status before SCO is |PLAYING| or |mozinterruptbegin|, and it should work on all branches, including 1.3, 1.3t, 1.4 and master.

Jim, would please review this patch? thanks!

(Also renominate this bug because I was requested by our partner to fix this bug.)
Attachment #8435560 - Flags: review?(squibblyflabbetydoo)
Comment on attachment 8435560 [details] [review]
patch

This seems like the right thing to do. Thanks, Dominic!

(I hope we can eliminate some of these issues when we rework audio channels, since it's very hard to get the logic right...)
Attachment #8435560 - Flags: review?(squibblyflabbetydoo) → review+
Assignee: nobody → dkuo
Whiteboard: [sprd305192][partner-blocker] → [sprd305192][partner-blocker][sprd287908]
Landed on master: 7a534f0afe16ccf38e8f17a73d0dc94ba1206ea6
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Please land on v1.3t and v1.4, thanks!
Flags: needinfo?(yang.zhao)
(In reply to James Zhang from comment #10)
> Please land on v1.3t and v1.4, thanks!

Can someone please make this blocker? I can help to uplift to 1.3t and 1.4 but need approval.
Flags: needinfo?(styang)
(In reply to Dominic Kuo [:dkuo] from comment #11)
> (In reply to James Zhang from comment #10)
> > Please land on v1.3t and v1.4, thanks!
> 
> Can someone please make this blocker? I can help to uplift to 1.3t and 1.4
> but need approval.

Steven told me that we can merge anything to v1.3t without flag or review+.
Please let your patch get review+, I'll merge it to 1.3t.
v1.3t: fe0c0bcb572f23ea17170d5e9cac9f1a2415d6a6
blocking-b2g: 1.3T? → 1.4?
Is this a regression from 1.3T to Dolphin?

Also regression from 1.3 Buri to Flame?

This doesn't block the phone from shipping 1.4 release.
Not taking in 1.4 as this is a minor user impact.
blocking-b2g: 1.4? → backlog
Hi Yang, please land this WIP patch for dolphin. Thanks.
Flags: needinfo?(kevin)
Landed on our build by using patch on 6821 & 7715.
Flags: needinfo?(yang.zhao)
Flags: needinfo?(kevin)
Flags: needinfo?(styang)
blocking-b2g: backlog → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: