Avisos

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


 
Herramientas
  #1  
Viejo 25/06/18, 19:34:50
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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?
Responder Con Cita
Gracias de parte de:


  #2  
Viejo 25/06/18, 20:33:14
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
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.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 25/06/18, 20:36:21
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
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
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
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
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
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.
Responder Con Cita
  #6  
Viejo 26/06/18, 11:33:18
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #7  
Viejo 26/06/18, 14:08:31
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #8  
Viejo 27/06/18, 08:23:40
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #9  
Viejo 27/06/18, 17:59:20
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
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.

Ú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
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
¿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
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
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
Responder Con Cita
  #12  
Viejo 29/06/18, 07:46:37
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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?

Responder Con Cita
  #13  
Viejo 10/07/18, 20:09:11
Avatar de GraphicAdventure
GraphicAdventure GraphicAdventure no está en línea
Miembro del foro
Mensajes: 277
 
Fecha de registro: oct 2013
Localización: España
Mensajes: 277
Modelo de smartphone: S3 Mini I8190N
Versión de ROM: JB 4.1.2
Tu operador: Movistar
Mencionado: 11 comentarios
Tagged: 0 hilos
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
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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?
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Otro software para Android > Tasker

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 04:36:57 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007