5 votos

¿Por qué este applescript, en realidad, no ajuste el volumen de entrada a cero?

Tengo este comando que crea una secuencia de comandos para silenciar el volumen de entrada. El volumen de entrada no se encuentra totalmente en silencio, aunque. Parece estar más cerca de 10% a 0%.

osacompile -x -e 'tell application "System Events" to set volume input volume 0' -o ~/bin/mute_mic.scpt

Esto es extraño, porque la barra deslizante es lo más a la izquierda se puede ir, pero como se puede ver en la imagen adjunta, el sonido se está registrando. Sin embargo, si puedo utilizar el ratón para hacer clic en el control deslizante a cero, entonces se hace realidad silenciar la entrada.

¿Por qué sucede esto? Estoy usando applescript incorrectamente aquí?

Proof of script not muting.

Incluso se puede replicar este con el basic Editor AppleScript, así que sé que no es un problema con la compilación.

applescript not working

(Nota: yo en un principio tomó mi cue para la solución a este problema a partir de esta pregunta la respuesta.)

3voto

Ged Byrne Puntos 481

Hasta donde yo sé, el script funciona como se esperaba, el problema está en el OS X entrada de audio de código. Cuando lo ejecuto, el regulador va a 0%, verificado por el ratón sobre el control deslizante hasta que aparezca la sugerencia:

tooltip

Este es el mismo como si me arrastre el control deslizante de volumen manualmente.

El problema es que aparentemente "0%" en realidad no significa que fuera, sino más bien un umbral muy bajo. En algunas pruebas rápidas, podría grabar el sonido de mi dedo en mi MacBook Pro cubierta cerca del micrófono (en la mayoría de las máquinas, creo que es alrededor del altavoz derecho de la parrilla) cuando el volumen se establece en 0. Me podría replicar que, independientemente de si se establece el control deslizante de forma manual o a través de AppleScript. Parecía ser lo suficientemente bajo para que prácticamente cualquier otro sonido no está recogido, pero es evidente que el micrófono no está realmente apagado.

Como lo que yo puedo decir, que no hay manera de silenciar el micrófono incorporado. Lo mejor que puedo sugerir es cambiar la entrada de audio para el uso de la línea, si su Mac está equipado con un puerto de línea. Haciendo que a través de AppleScript requiere algunos GUI de secuencias de comandos por desgracia, pero esto debe hacerlo (fuente):

tell application "System Preferences"
   activate
   set current pane to pane id "com.apple.preference.sound"
end tell
tell application "System Events"
   tell process "System Preferences"
       set frontmost to true
       --get properties of UI element of tab group of window "Sound"
       click radio button "input" of tab group of window "Sound"
       tell row 2 of table 1 of scroll area 1 of tab group 1 of window "Sound" to set selected to true
   end tell
end tell

Si usted tiene más de las dos entradas de audio estándar (de Línea y Micrófono), usted puede necesitar cambiar el número en row 2 a que corresponda, según el orden de Entrada de las preferencias.

1voto

kenny Puntos 123

De esta forma se genera fuera de @robmathers GUI de secuencias de comandos de la pieza y mi pregunta acerca de si se puede hacer "clic" en el control deslizante con applescript. Yo hice algo de investigación en AppleScript y acciones de la IU y resulta que usted puede.

Este utiliza la GUI de secuencias de comandos que es triste, pero FUNCIONA.

tell application "System Events"
    set volume input volume 0
end tell
tell application "System Preferences"
    activate
    set current pane to pane id "com.apple.preference.sound"
end tell
tell application "System Events"
    tell process "System Preferences"
        set frontmost to true
        click radio button "input" of tab group 1 of window "Sound"
        perform action "AXDecrement" of slider 1 of group 2 of tab group 1 of window "Sound"
    end tell
end tell
tell application "System Preferences"
    quit
end tell

Aquí es lo que está pasando en esta secuencia de comandos:

  1. Ajusta el volumen de entrada a 0 -- esto mueve el control deslizante a la izquierda
  2. "Clics" el control deslizante para hacer lo que detrás de las escenas de vudú que Apple ha considerado necesario "silencio" de la línea de entrada (esto se está poniendo ridículo)
  3. Se cierra la Aplicación Preferencias del Sistema.

Una cosa a tener en cuenta: El Sonido de la ventana de Preferencias ya no se puede abrir antes de ejecutar este o el primero set volume input volume 0 no funciona.

También es trivial para editar el script para activar (que también sufre del mismo problema). (El uso de "AXIncrement" para la acción)

Enormes apoyos a @robmathers en llevarme tan lejos como yo necesitaba figura esta última pieza. Voy a esperar todavía para el premio de la recompensa en caso de que alguien tenga una solución más elegante, pero de otro modo, es a su manera.

-1voto

tik27 Puntos 111

Ahora parece ser una aplicación para hacer esto Callar https://itunes.apple.com/us/app/shush-microphone-manager/id496437906?mt=12

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