PDA

Ver la Versión Completa : Redireccionar audio de un canal a otro con Tasker


SmartPhoneLover
01/07/18, 16:02:50
Hola Tasker@s,

Os traigo buenas noticias. Ya he lo grado conseguir redireccionar audio de un canal a otro en Android, y usando solo Tasker. Por lo tanto, ya no será necesario el uso de la tan conocida app 'SoundAbout'; al menos con el canal más habitual: Multimedia.

Sin más dilación, nos vamos al grano...

A1: Java Function [ Return:(AudioManager) temp Class Or Object:CONTEXT Function:getSystemService
{Object} (String) Param:audio Param: Param: Param: Param: Param: Param: ]
<Auriculares -> Altavoz>
A2: Anchor
A3: Java Function [ Return: Class Or Object:temp Function:setWiredHeadsetOn
{} (boolean) Param:false Param: Param: Param: Param: Param: Param: ]
A4: Java Function [ Return: Class Or Object:temp Function:setSpeakerphoneOn
{} (boolean) Param:true Param: Param: Param: Param: Param: Param: ]
A5: Java Function [ Return: Class Or Object:temp Function:setMode
{} (int) Param:3 Param: Param: Param: Param: Param: Param: ]
<Altavoz -> Auriculares>
A6: Anchor
A7: Java Function [ Return: Class Or Object:temp Function:setSpeakerphoneOn
{} (boolean) Param:false Param: Param: Param: Param: Param: Param: ]
A8: Java Function [ Return: Class Or Object:temp Function:setWiredHeadsetOn
{} (boolean) Param:true Param: Param: Param: Param: Param: Param: ]
A9: Java Function [ Return: Class Or Object:temp Function:setMode
{} (int) Param:0 Param: Param: Param: Param: Param: Param: ]


Pues nada, ahora solo queda averiguar lo siguiente:
- Cómo redireccionar a/de los demás canales: Llamadas (segundo altavoz, no in-call), BT.

- Como opcional, averiguar cómo hacerlo en los canales de Alarma, Sistema, Notificaciones, etc. Pero sabiendo que dichos canales usan el altavoz principal como via de reproducción, no creo que sea necesario.

- Reproducir el sonido por dos medios al mismo tiempo, es decir, Altavoz principal y Auriculares. (otra app diferente a SoundAbout lo permitiía, por lo que debe ser posible, a no ser que se usen librerias externas)
- Y no sé que más. Lo dejo a vuestra imaginación... ;)

WillyWeb
02/07/18, 09:27:26
Me ha picado la curiosidad y he estado leyendo un poco sobre esas funciones Java que has utilizado.

https://developer.android.com/reference/android/media/AudioManager

Por lo que veo con "setWiredHeadsetOn" y "setSpeakerphoneOn" enciendes/apagas los auriculares por cable (los cascos de toda la vida) y el altavoz, respectivamente. Creo que la salida de audio que te falta por gestionar (audio vía BT) debería controlarse con "setBluetoothScoOn".

Lo que me ha dejado un poco "loco" es ese "setMode". Dice la documentación que esa función es para controlar el comportamiento del audio de la capa de telefonía, y su único parámetro parece confirmarlo...

MODE_NORMAL=0
MODE_RINGTONE=1
MODE_IN_CALL=2
MODE_IN_COMMUNICATION=3

Según todo esto el primer bloque de la tarea (Auriculares -> Altavoz) apaga los cascos, enciende el altavoz y establece el audio en modo comunicación. Y el segundo bloque (Altavoz -> Auriculares) apaga el altavoz, enciende los cascos y pone el audio en modo normal.

Entiendo que lo que pretendes es "enrutar" el audio de un canal a otro, pero las funciones que has usado lo que hacen es activar/desactivar las distintas salidas de audio del dispositivo y "enrutar" el audio de las llamadas. Lo curioso es que ese "truco" parece que funciona ¿...?

En cualquier caso, tu dominio de Java desde Tasker es para quitarse el sombrero. :aplausos:

emiegna
02/07/18, 12:46:14
(estoy como Marco en el día de la madre)

WillyWeb
02/07/18, 12:49:07
(estoy como Marco en el día de la madre)

Tú también te has dado cuenta, ¿verdad? ;-)

emiegna
02/07/18, 14:43:22
:conductor:

:D

SmartPhoneLover
03/07/18, 17:50:35
Os comunico que Joao ha tomado mi idea en consideración para agregarla como funcionalidad extra en futuras versiones de Tasker :D

WillyWeb
03/07/18, 18:34:37
Genial. :ok:

Parece que Joao tiene una "filosofía" muy distinta a la de Pent. ;-)

z3us
01/04/19, 22:58:43
¿Sabemos si finalmente se incorporó esto a tasker?

WillyWeb
07/04/19, 09:49:00
¿Sabemos si finalmente se incorporó esto a tasker?

Desde que lo comentó el compañero el verano pasado hasta la versión 5.7 beta 12 publicada hace un par de días, esa posibilidad no estaba incluida. O yo no la veo por ninguna parte. :pensando:

Tasker 5.5
https://tasker.joaoapps.com/changes/changes5.5.html

Tasker 5.6
https://tasker.joaoapps.com/changes/changes5.6.html

Tasker 5.7 (next version)
https://tasker.joaoapps.com/changes/nextversion.html