5 votos

Error de Applescript -1708 al llamar a una función

He escrito un script para Spotify con una subrutina

tell application "Spotify"

    silentVolume(tmpDur)

end tell

on silentVolume(tmpDur)
    tell application "Spotify"

        set tmpDur to ((duration of current track) / 1000)

    end tell
end silentVolume

Hay dos problemas con esto

  1. Cuando llamo a silentVolume con un flotador me sale un error -1708 y el mensaje de error (traducido al inglés así que es una aproximación) "Spotify encountered an error. Cannot continue silentVolume". ¿Por qué?
  2. Parece que silentVolume no hereda el contexto (dile a la aplicación "Spotify") de la función principal. ¿Por qué?

Inicialmente esta subrutina formaba parte de la función principal y entonces funcionaba bien, pero necesitaba una solución recursiva, por lo que tuve que separarla en un método aparte.

0 votos

¿Qué pasa con las cuatro apariciones de puntos verticales en el código? No se compilan. ¿Qué ocurre si se utiliza set tmpDur to ((duration of current track) / 1000) as integer ¿Sigue dando un error?

0 votos

Era sólo un reemplazo vertical de una elipsis ( ) que se puede usar para indicar que algo fue omitido.

0 votos

@user3439894 Falla ya en el tell-statement de la subrutina.

6voto

Ady Puntos 4132

Fue un problema con el alcance. Esta pregunta me puso en el camino correcto. Necesitaba cambiar la llamada a la subrutina a

my silentVolume (tmpDur)

y ahora funciona como se esperaba. Déjalo aquí como referencia futura para cualquiera que busque en Google el error -1708.

0 votos

Debería considerar marcar su propia respuesta como la correcta. Y gracias, por cierto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X