When playing a podcast via DoggCatcher, if a call comes in (or placed) it switches to the earpiece after the call. I would then have to pause the episode then resume to get it to play back threw the speaker phone. If I start playing the Play Music App (via speaker phone), a call comes in, after the call it continues playing through the speaker phone. Has anyone seen this issue?
I've heard some strange things like this with later versions of android (ics/jellybean). We actually don't specify where audio is routed at all. We just play the audio and android figures out which output the audio goes to. What I find strange is that I've heard a few people that have described things like this that different apps end up with audio going to different places.
Definitely an issue with DoggCatcher. I just installed BeyondPod, played an episode, called my phone, hung up and it continued to play the BeyondPod episode through the speaker phone, not the earpiece.
Hmm, I went through the source code for the android music player (the open source one) and they aren't doing anything to route the audio explicitly, they're just letting android route, as I am. DC must be interacting with the media player in some way that is different than other players that conflicts with the ROM on your device. This does seem to be limited to some devices.
Which Device/ROM are you using?
I'm running CM10 on a Galaxy Nexus
Ahh, that's probably why I can't reproduce it on my gnexus. It is likely that the sequence or timing that DC is invoking method on the android media player is surfacing a bug in CM.
Hmm...I get what you're saying, and it could be a bug in CM10, but it's odd that it works in BeyondPod and not DC.
Also note, if DC is playing and the phone rings, if I don't answer, it still plays through the speaker phone as it should. It's only if I answer or place a call is when it reverts to the earpiece.
Is there going to be any work on this? It's really frustrating having to pause then unpause DC after every phone call. Every other audio app works fine except Doggcatcher.
I don't have any plans to work on this in the near future. It seems to be limited to CM, at least I don't think anyone has reported it outside of CM. I wish I could work around all the rom differences but it's pretty time consuming and usually a work around for one ends up causing strange behavior on other devices/roms, so I try to keep it to a minimum.
Thanks for posting.
Thanks, but its very odd that this does not happen with any other audio app using CM10 including BeyondPod. Is there a setting that tells DC to use the speakerphone? Maybe I can search and see why CM would be different. BTW, other users have reported audio issues with CM10 & DC.
It's not too surprising actually. Different apps are going to invoke methods on the media player in a different sequence and with different timings. These differences surface strange bugs in the ROMs. Take a look in the advanced prefs in DC. There are two hacks in there that you can enable that tweak some of these these to try to work around the ROM bugs.
When I've gone down this road in the past of trying to get everything lined up to work for a specific ROM it inevitably gets broken for a different custom ROM, or even worse, the factory ROMs.
I tried both those hacks and still, after I hang up a call, the audio is routed though the earpiece instead of the speakerphone. I'm not even sure if the earpiece is even a select-able option in DC. How do you control where it plays? I know if I play a VM, I can hit a button to control whether to play through earpiece or speakerphone (default).
I'm not a programmer, but just trying to throw out some hints. Digging through the Android API guides, I came across something interesting in the AudioManager class. It seems that they've depreciated the ROUTE_SPEAKER constant (used since Api v1) and suggest that it should be replaced with the setSpeakerphoneOn() method. Not sure if this is the issue, but again, just pulling for straws here.
http://developer.android.com/reference/android/media/AudioManager.html#R...
Also, I saw some tips on StackOverflow that mention how to route audio whether or not you're in a call. I my case I'm guessing the use of MODE_NORMAL would be where you re-route back to the speaker phone after MODE_IN_CALL using setSpeakerphoneOn(true).
http://stackoverflow.com/questions/1726436/how-to-play-media-via-speaker...
Again, I'm not a programmer of any sort and all this could be total nonsense to you, but just trying to help out.
Thanks again,
I actually just referred to those as examples of how the timing/order of interacting with the media player can affect behavior on different ROMs.
DC doesn't specify any audio routing at all. Audio apps normally leave that up to android and android decides where to route audio based on audio devices that are connected and call state.
I appreciate you digging into the api's. I had looked into those after your first post. The docs actually recommend against invoking methods of that category for apps like DC - "This method should only be used by applications that replace the platform-wide management of audio settings or the main telephony application." My guess is that the telephony app on your rom is either not invoking those methods correctly or the methods themselves aren't working right.
Thanks for posting.
I got to figure this out. Is there any logging I can enable that you can look at? It's just very odd that this issue ONLY happens with DC and not with any other app. BeyondPod seamlessly resumes back to speaker phone after a call.
Have you tried updating to the latest CM10. I had another user that was experiencing similar audio routing problems that were resolved with the 10/4 release of CM10.
I update to the nightly several times per week. All have the same issue. I've pretty much given up and went to BeyondPod (which is very nice btw). This app resumes to speakerphone after call on CM10 with no problems. I'll try DC again once this issue is fixed.
I have a similar issue, if I get a call during play while listening on headphone then unplug headphone for call when I hang up it plays on the speaker.
At first I did not care much... but then I realized that this could cause big problems at work!!!! It is not safe!
GNex, stock.
There is a issue for that (Resume play after phone call only when headset is connected - http://mantis.snoggdoggler.com/view.php?id=457) to be resolved on a future update.
I have this exact same issue on my new Google Nexus 4. I haven't messed with ROMs or whatever and have it updated to 4.2.1.
I gave up! Went with BeyondPod, which btw is much superior due to the SmartPlay feature.
I gave up! Went with BeyondPod, which btw is much superior due to the SmartPlay feature.