I'd rather choose another approach for implementing this and satisfy all "customer requirements":
1) New option to not pause music playback at all so that users like Kardaman (that do not experience any problems with "parallel" audio output) can use the app as they did before.
2) Optimize implementation if pausing is activated. I think you really need to do this because there are a lot of users out there, that do have problems with parallel audio output and need a solution for this (installing SVOX, IVONA may not work. At least it didn't for me when switching to Galaxy S3).
From my point of view, your current implementation might be something like this (very simplyfied pseudo code):
for each parameter to be send to TTS:
String outputString = getParametersTTSOutputString();
requestAudioFocus();
if audioFocusRequestGranted()
textToSpeach(outputString);
endif
next
If so, why not first build your complete output string and send it to TTS at once (using only one single audio focus request)?
StringBuffer outputStringBuffer = new StringBuffer();
for each parameter to be send to TTS:
outputStringBuffer.append(getParameterTTSOutpuString());
outputStringBuffer.append("."); // Append period to realize a short pausing of output between two parameters
next
requestAudioFocus();
if audioFocusRequestGranted()
textToSpeach(outputStringBuffer.toString());
endif
Maybe this solves the problem (or maybe this is complete rubbish - sorry, but I don't know anything about the Android API)???
16.08.2012 18:01:16 UTCgeändert am 17.08.2012 00:28:30 UTC
The actual muting of the music is implemented by the music app, meaning that Run.GPS sends a notification to other apps stating that it wants "audio focus" during the playback of voice messages. If the music app pauses or mutes depends on how the music app handles these notifications.
We will make this optional in the next release since some users are not very happy with it.
Ich hätte das - genau wie Kardaman - ebenfalls gerne deaktivierbar, zumindest, wenn es so bleibt wie es jetzt ist (zwischen einzelnen Parametern Musik wieder einschalten). Wenn's anders umgesetzt wäre, hätte ich mit dem Muting kein wirkliches Problem und könnte ohne den "Ausschalter" leben, so aber taugt es mir gar nix. Musste die Sprachausgabe komplett deaktivieren, obwohl ich es bis dato eigentlich sehr intensiv genutzt hatte (5 Parameter alle 500 Meter), ist also ein echtes Problem für mich.
P.S.: Zur Empfehlung von Kardaman: es muss nicht unbedingt SVOX sein, ich hatte vorher IVONA und das lief ebenfalls absolut problemlos (und ist in der Beta noch immer kostenlos)... Hängt aber vielleicht auch vom Gerät bzw. der Firmware ab (oder der Sternenkonstellation ;-)...
Ist die neue Mute/Pause Funktion abschaltbar?
Was ich hier so lese bestätigt mich in meinen Befürchtungen. Es macht doch überhaupt keinen Sinn (zumal wenn es suboptimal funktioniert) für die Ansage von 2 Sekunden die Musik zu unterbrechen.
Leute, bitte benutzt SVOX und macht die Ansagen damit etwas lauter als die Musik und alles ist gut.
Ihr habt Smartphones für über 200€, eine Software für min. 15€ und spart dann an 3,5€ für SVOX.
Wenn die Mute Funktion nicht deaktivierbar ist werde ich nicht updaten und mich außerdem nach einem anderen Programm umschauen. So ist es auf jeden Fall Quatsch.
Sounds to me that in Android 4, it does nut mute, but pauses the music. I noticed on my device it really mutes (and smooth), I do "miss" seconds of the song when the app talks, it really does not pause. That also could explain the abrupt stopping of music with you (pausing...) and just smooth muting with me.
Just a suggestion that seems logic, I am in no way a programmer, but maybe it helps the Run.GPS team ;-)
The other thing, 1 second of unmuting between each Parameter being told, I have that too, but it doesn't bother me at all, sorry. --Music player of android tested only.--
ich möchte auch nach einigen tests nun melden, dass das ausblenden der musik nicht wirklich sauber funktioniert.
zum einen habe ich das gleiche problem wie der kollege unten, zum anderen noch folgendes:
und zwar ist es teilweise (durch das ständige an und ausschalten während der ansagen) so, dass irgendwie die parameter durcheinander kommen, und die musik manchmal nach der letzen parameteransage (bei mir die herzfrequenz) nicht mehr eingeschaltet wird. bzw. manchmal sogar trotzdem während der ansagen läuft, sprich die musik und die stimme erst wieder doppelt zu hören sind... echt nicht in ordnung.
ich muss noch dazusagen, dass ich einen alternativen musikspieler (poweramp) nutze.
sonstige konfig: htc one x mit Android 4.0.3, custom rom (leedroid) mit run.gps 2.4.1 build 2560.
09.08.2012 14:06:30 UTCgeändert am 09.08.2012 14:08:28 UTC
Funktioniert sehr unsauber auf Galaxy S3
Da hier einige positive Feedbacks stehen, gehe ich davon aus, dass mein Problem gerätespezifisch ist. Zum einen wird bei mir immer abrupt unterbrochen (leider nicht "smooth"), was für mich aber auch nur "nice to have" und deshalb nicht wirklich kritisch ist. Was allerdings sehr(!!!) stört: ich lasse mir gerne 5 verschiedene Parameter ansagen (aktuelle Herzfrequenz, aktueller Pace, gelaufene Kilometer, gelaufene Zeit, Uhrzeit). Dummerweise ist es auf dem S3 so, dass zwischen jeder einzelnen Parameteransage die Musik wieder für etwa 1 Sekunde ein- und dann sofort wieder (für die Ansage des nächsten Parameters) ausgeblendet wird. Das ist absolut nervig!!! Ich nutze das Feature "Sprachausgabe" deshalb momentan gar nicht mehr, weil es wirklich extrem stört! Gibt es eine Möglichkeit, das zu beheben (also Musik ausblenden für die gesamte Durchsage aller Parameter und erst dann wieder einblenden)? Wäre wirklich dringend notwendig!!!
P.S.: Android Version 4.0.4, original O2-ROM mit Run.GPS 2.4.1
This feature has now been implemented: the music is muted during voice playback.
Release 2.4.1 can be obtained from Google Play or from this website.
The iPhone release already supports this.
------------ deutsch ---------------
Die Funktion wurde nun implementiert: die Musikwiedergabe wird während Sprachausgaben unterbrochen und danach fortgesetzt.
Das neue Release steht in Google Play und auf dieser Website zum Download.
In der iPhone-Version ist die Funktion bereits vorhanden.