Closed Bug 1126592 Opened 9 years ago Closed 7 years ago

Music fails to resume playing when no longer in Camera's video mode


(Firefox OS Graveyard :: AudioChannel, defect)

Gonk (Firefox OS)
Not set


(Not tracked)



(Reporter: gkw, Unassigned)


(Whiteboard: [2.2-bug-bash])


(2 files)

Gaia-Rev        80d5b797fd0497a7e3337b7798a21b2e1219681a
Build-ID        20150127002504
Version         37.0a2
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20150127.041924
FW-Date         Tue Jan 27 04:19:35 EST 2015
Bootloader      L1TC000118D0

Music fails to resume playing when no longer in Camera's video mode.

Steps to Reproduce
1. Play a song from the Music app. While playing, shut the screen off.
2. Turn on the screen, go to Video mode. Camera app should launch.
3. Take a picture, music is still playing.
4. Switch to video mode. Music is no longer playing. Take a video. And maybe 2.
5. Switch to picture mode. Music still is no longer playing.
6. Go back to Music app. Music resumes playing automatically.

This seems like a bug if the Music should resume playing immediately when going out of Video mode (i.e. back to Picture mode) in Camera app.

Reproduction Frequency: Always

Setting needinfo? from the Music app's module owner, Dominic. What's the best way to move this forward?
Flags: needinfo?(dkuo)
Currently the audio competing logic is still controlled by gecko, so I am afraid this is a gecko(audio channel) issue which music app probably can not do any help here, and maybe a regression.
Component: Gaia::Music → AudioChannel
Flags: needinfo?(dkuo)
Not sure who owns AudioChannel, so setting needinfo? from Randy, who fixed a recent AudioChannel bug (bug 1082677). Please feel free to move the needinfo? request onwards to a more suitable person if necessary.
Flags: needinfo?(globelinmoz)
Transfer slee to help this :)
Flags: needinfo?(globelinmoz) → needinfo?(slee)
Hi Alastor,

Please check the UX spec and see if the behavior is consistent. I tried the scenario on iphone and nexus 5 with L. When I switch to camera app, the music is still playing. After changing to video mode, the music stops. Then the only way to get music back is to switch to music app and resume it again.

Hi Gary,
Randy has left Mozilla. For AudioChannel issues, please contact Alastor or me. Thanks.
Flags: needinfo?(slee) → needinfo?(alwu)
In UX spec, the music should be resume after recording is done.

But the strange thing I observed is that the play bar disappeared in the notification window after starting a recording. It was still disappearing even when I leaved the camera app.

It would appear when I launch the music app again, and then the music is resume automatically.

Hi, Dominic,
Do you have any ideas about it? Why the play bar disappear? Would the play bar affect the music playback?
Thanks a lots :)
Flags: needinfo?(alwu) → needinfo?(dkuo)
(In reply to Alastor Wu [:alwu] from comment #6)
> Hi, Dominic,
> Do you have any ideas about it? Why the play bar disappear? Would the play
> bar affect the music playback?
> Thanks a lots :)

Music app listens to the audio element's |mozinterruptbegin| and |mozinterruptend| events to hide/show the play controls in the utility tray, this is by design because once music app's content channel is interrupted by some other apps, we hide all the controls outside of the music app, such as the two on lockscreen and utility tray to indicate the user though the music is launched but currently inactive.

That's a ui work so probably not related to this issue, I guess the camera api has done something then triggered the audio channel manager to interrupt the music content channel?
Flags: needinfo?(dkuo)
Hi, Jenny,
Could you help me verify the behavior of this bug?

I have checked the UX spec, this bug is the situation of both content audio playing.
If I understanding is correct, that means we should not resume music even the recording is ending?
If not, when should we resume music? In the end of recording? Switch back to the camera mode? Or active the music app?

Thanks a lots :)
Flags: needinfo?(jelee)
[Root cause] (If this behavior is a bug)
When we want to playback the content audio in the background, we use |mPlayableHiddenContentChildID| to store the ID of this audio. This variable would be reset when there is new content/normal audio channel playing in the foreground.

In this case, the camera recording has its content audio channel in the foreground. Therefore, after recording, we can't playback the hidden content audio.
Hi Alastor,

Per discussion, the expected behavior should be: once switch to video recoding, pause content channel playback and resume after user leaves Camera app. Thanks ;)
Flags: needinfo?(jelee)
Setting needinfo? from Alastor in case this fell off the radar.
Flags: needinfo?(alwu)
If we want to achieve the result of comment10, it needs to be wait after landing new audio channel architecture.
Because now the gecko doesn't know whether users leave the camera app or not.

After finishing the new architecture, this behavior will be implemented in the music app, the music app can listen the moz-interrupt event to decide whether the music need to be resumed.
Flags: needinfo?(alwu)
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.