Avisos

Tasker Para hablar de todo lo relacionado con la aplicación tasker

Respuesta
 
Herramientas
  #1  
Viejo 25/06/18, 19:34:50
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
interrogacion Ejercicios de verano (canciones aleatorias sin repetición)

Me he encontrado un tema muy interesante y algo más complicado que este otro.

La cuestión del millón es esta...
Tengo una colección de archivos MP3 en una carpeta y los quiero reproducir de forma aleatoria sin repetir ninguno hasta que no los haya reproducido todos.
Nuevamente, sólo acciones de Tasker (sin JavaScript).

Antes de comenzar con la tarea ... ¿alguna idea de cómo atacar el problema?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Gracias de parte de:


  #2  
Viejo 25/06/18, 20:33:14
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por WillyWeb Ver Mensaje
¿alguna idea de cómo atacar el problema?
A) Lo primero sería obtener la lista de los archivos y meterla en un array.
B) Generar un número aleatorio entre 1 y el total de ficheros (elementos del array), para elegir la primera canción. Luego quitar ese elemento del array, con lo que el número de elementos se reduce en uno.
C) Volver al paso B) mientras todavía haya elementos por procesar.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 25/06/18, 20:36:21
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
A) Lo primero sería obtener la lista de los archivos y meterla en un array.
B) Generar un número aleatorio entre 1 y el total de ficheros (elementos del array), para elegir la primera canción. Luego quitar ese elemento del array, con lo que el número de elementos se reduce en uno.
C) Volver al paso B) mientras todavía haya elementos por procesar.

Ohhh, estaba intentado crear la tarea con la parte de tu idea 'B' al revés XD. Ahora tu planteamiento es más sencillo. Me pongo a ello!!!
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 25/06/18, 21:07:13
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Bueno, no sé si iva bien encaminado o que, pero aquí os dejo algo para empezar.
La tarea esta totalmente incompleta, y con cosas desperdigadas, por aquí, y por allá. Pero quizás sirva a modo de inicio ;)

Código:
    A1: List Files [ Dir:Documents/Tasker/Music Match: Include Hidden  Files:Off Use Root:Off Sort Select:Alphabetic Variable:%temp1 ] 
    A2: Variable Set [ Name:%temp2 To:(%temp2)+1 Recurse Variables:Off Do Maths:On Append:Off ] 
    A3: Variable Set [ Name:%temp3 To:%temp1(%temp2) Recurse Variables:Off Do Maths:Off Append:On ] 
    A4: Variable Set [ Name:%temp3 To:, Recurse Variables:Off Do Maths:Off Append:On ] If [ %temp2 !~ %temp1(#) ]
    A5: Goto [ Type:Action Number Number:2 Label: ] If [ %temp2 !~ %temp1(#) ]
    A6: Array Set [ Variable Array:%temp3 Values:%temp3 Splitter:, ] 
    A7: Variable Clear [ Name:%temp2 Pattern Matching:Off Local Variables Only:Off ] 
    A8: Variable Set [ Name:%temp2 To:(%temp2)+1 Recurse Variables:Off Do Maths:On Append:Off ] 
    A9: Flash [ Text:%temp3 Long:Off ] 
    A10: Array Pop [ Variable Array:%temp3 Position:8 To Var: ] 
    A11: Goto [ Type:Action Number Number:8 Label: ] If [ %temp3(#) !~ 1 ]
    A12: [x] Music Play [ File:%temp1(%temp2) Start:0 Loop:Off Stream:3 Continue Task Immediately:Off ] 
     A13: [x] Music Stop [ Clear Dir:Off Continue Task After Error:On ]

Algunos valores no tienen sentido en algunas tareas, y el órden de algunas tampoco. Pero la mitad de la misma debería funcionar, al menos para generar la lista de las canciones.

Última edición por SmartPhoneLover Día 25/06/18 a las 21:10:15.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
  #5  
Viejo 26/06/18, 08:45:35
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por WillyWeb Ver Mensaje
Ejercicios de verano
Willy, gracias por plantear estos retos.
Eso no impide que tú también participes en aportar soluciones. Retado quedas.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #6  
Viejo 26/06/18, 11:33:18
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Eso no impide que tú también participes en aportar soluciones. Retado quedas.
No. Si yo lo tengo resuelto, pero se trata de "picar" al auditorio, que al final siempre salimos al ruedo los mismos.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #7  
Viejo 26/06/18, 14:08:31
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
A) Lo primero sería obtener la lista de los archivos y meterla en un array.
B) Generar un número aleatorio entre 1 y el total de ficheros (elementos del array), para elegir la primera canción. Luego quitar ese elemento del array, con lo que el número de elementos se reduce en uno.
C) Volver al paso B) mientras todavía haya elementos por procesar.
No había visto tu respuesta y justo ese ha sido mi planteamiento.

No vale copiar, que te veo.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #8  
Viejo 27/06/18, 08:23:40
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Como decía he seguido la estrategia que apuntaba Caravantes ...

Código:
ReproducciónSinRepetición (666)
	<LISTA DE ARCHIVOS>
	A1: Listar archivos [ Directorio:/sdcard/Music Coincidir:*.mp3 Incluir Archivos Ocultos:Apagado Usar Root:Apagado Ordenar por:Alphabetic Variable:%lista ] 
	<LARGO DE LA LISTA>
	A2: Establecer variable [ Nombre:%max A:%lista(#) Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] 
	<NÚMERO DE ARCHIVO ALEATORIO>
	A3: Variable aleatoria [ Nombre:%num Mín:1 Máx:%max ] 
	<SACA ARCHIVO DE LA LISTA>
	A4: Array Pop [ Matriz de Variables (array):%lista Posición:%num A la variable:%archivo ] 
	<REPRODUCE EL ARCHIVO>
	A5: Reproducir música [ Archivo:%archivo Comenzar:0 Bucle:Apagado Stream:3 Continuar tarea inmediatamente:Apagado ] 
	<SIGUIENTE ARCHIVO>
	A6: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:LARGO DE LA LISTA ] Si (if) [ %lista(#) > 0 ]
SmartPhoneLover, dale otra vuelta a esa tarea que has dejado a medias y así tendremos dos soluciones.

Caravantes, lo tenías claro pero te he ganado por la mano.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #9  
Viejo 27/06/18, 17:59:20
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por WillyWeb Ver Mensaje
Caravantes, lo tenías claro pero te he ganado por la mano.
¡Mecachis!

Pero me voy a desquitar.
Tu tarea tiene 6 acciones. La mía tiene una menos. Ahí va: [atención, esta tarea es incorrecta, tiene un error que se explica en posts posteriores]

Código:
	<LISTA DE ARCHIVOS>
	A1: Listar archivos [ Directorio:/sdcard/Music Coincidir:*.mp3 Incluir Archivos Ocultos:Apagado Usar Root:Apagado Ordenar por:Alphabetic Variable:%lista ] 
	<NÚMERO DE ARCHIVO ALEATORIO>
	A2: Variable aleatoria [ Nombre:%num Mín:1 Máx:%lista(#) ] 
	<SACA ARCHIVO DE LA LISTA>
	A3: Array Pop [ Matriz de Variables (array):%lista Posición:%num A la variable:%archivo ] 
	<REPRODUCE EL ARCHIVO>
	A4: Reproducir música [ Archivo:%archivo Comenzar:0 Bucle:Apagado Stream:3 Continuar tarea inmediatamente:Apagado ] 
	<SIGUIENTE ARCHIVO>
	A5: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:NÚMERO DE ARCHIVO ALEATORIO ] Si (if) [ %lista(#) > 0 ]
Creo que debemos compartir el éxito de esta tarea, porque en realidad te la he copiado. El curro principal lo hiciste tú. Yo solo le he hecho tres pequeñas modificaciones:
- Quitar tu acción A2, porque la variable %max resulta innecesaria.
- Corregir la siguiente acción para el número aleatorio esté entre 1 y el total de elementos %lista(#), sin usar la variable %max.
- En la ultima acción, corregir el destino del GOTO que antes iba a una acción (antigua A2) ya inexistente.

Saludos.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker

Última edición por Caravantes Día 28/06/18 a las 23:43:35.
Responder Con Cita
  #10  
Viejo 27/06/18, 19:46:14
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
¿Estás seguro de que en el campo "Máx" de A2 puedes poner %lista(#)?

Es que yo no puedo.
Responder Con Cita
  #11  
Viejo 28/06/18, 23:41:56
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por WillyWeb Ver Mensaje
¿Estás seguro de que en el campo "Máx" de A2 puedes poner %lista(#)?
Es que yo no puedo.
Pues tienes razón, no me deja.
Realmente no había hecho la tarea, solo había modificado el texto de tu post, dando por supuesto que para el límite de la variable aleatoria era posible poner %lista(#), y no. Solo se pueden poner números o elegir una variable de las que hay en la lista (bajo la lupa), ni siquiera es posible escribir un nombre de variable.

He intentado hacer una trampa para ver si podía esquivar el problema. Compuse la tarea (la tuya), comprobé que funcionaba bien. Exporté en formato XML. Modifiqué el texto XML sustituyendo la palabra max por %lista(#), y luego probé a importar la tarea. Nones. ERROR, FORMATO DE DATOS INCORRECTO. Ese error aparece siempre que se modifica el XML, aunque sea en algo tan poco relevante como una etiqueta (Anchor). Deduzco que el XML lleva incorporado algún cheksum sobre el propio conjunto de datos, precisamente para evitar trampas como la que yo he intentado.

Dicho todo lo cual, tengo que disculparme por haberme pasado de listo. WillyWeb sigue siendo insuperable. Al menos para este ejercicio tiene la mejor tarea.
Willy
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #12  
Viejo 29/06/18, 07:46:37
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Pues tienes razón, no me deja.
Ya me parecía.

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Deduzco que el XML lleva incorporado algún cheksum sobre el propio conjunto de datos, precisamente para evitar trampas como la que yo he intentado.
Tranquilo que los XML de Tasker no llevan cheksum. Si te da error es por lo que has hecho o por modificar accidentalmente alguna etiqueta.

 Cita: Originalmente Escrito por Caravantes Ver Mensaje
WillyWeb sigue siendo insuperable.
¿Es que lo dudabas?

__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
  #13  
Viejo 10/07/18, 20:09:11
Array

[xs_avatar]
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Tu operador: Movistar
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
Willy, gracias por plantear estos retos.
Eso no impide que tú también participes en aportar soluciones. Retado quedas.
Estoy aburrido y me puse a ver temas...
Como idea, también podemos presentar pequeños problemas sobre cosas que hemos creado y ver si damos con la misma solución.
O ser imaginativos (Willy te toca ) y crear situaciones.
Algo que no se usa casi son condiciones complejas con varios booleanos y lo podríamos tocar, como ejercicios de lógica.
Es que me estoy acordando de un perfil que hice donde uso 5 condiciones intentando cubrir colisiones.
Responder Con Cita
  #14  
Viejo 10/07/18, 21:24:38
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Parece que has vuelto "juguetón".

Me parece muy bien lo de crear pequeños retos para animar un poco el foro. Justo esa es mi intención con los "Ejercicios de verano", fomentar la participación activa. La participación pasiva (lectores silenciosos) parece que está cubierta viendo el número de visitas de cada tema.

Por cierto, aunque no inicie el "ejercicio" aportando mi solución no quiere decir que no la tenga preparada. Siempre tengo al menos una.

Naturalmente también estaré encantado de participar en cualquier reto que quiera plantear otro forero.

El tema de los operadores lógicos que has mencionado suena muy interesante. Podrías hacer un pequeño tutorial explicando su funcionamiento y como caso práctico presentar ese proyecto que has recordado.

Es malo aburrirse, ¿verdad?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 18:04:59 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /