python macos audio terminal

Sonido de Python("Bell")



macos audio (5)

Basándose en la respuesta de Barry Wark ... NSBeep() de AppKit funciona bien, pero también hace saltar el ícono del terminal / aplicación en la barra de tareas. Algunas líneas adicionales con NSSound() evitan y le da la oportunidad de usar otro sonido:

from AppKit import NSSound #prepare sound: sound = NSSound.alloc() sound.initWithContentsOfFile_byReference_(''/System/Library/Sounds/Ping.aiff'', True) #rewind and play whenever you need it: sound.stop() #rewind sound.play()

Los archivos de sonido estándar se pueden encontrar a través de la línea de comando locate /System/Library/Sounds/*.aiff El archivo utilizado por NSBeep() parece ser ''/System/Library/Sounds/Funk.aiff''

Me gustaría que un programa de Python me avise cuando haya completado su tarea emitiendo un pitido. Actualmente, utilizo import os y luego uso un programa de voz de línea de comando para decir "Proceso completo". Prefiero ser una simple "campana".

Sé que hay una función que se puede usar en las aplicaciones de Cocoa, NSBeep, pero no creo que tenga mucho que ver con esto.

También intenté print(/a) pero eso no funcionó.

Estoy usando una Mac, si no puedes decirlo por mi comentario de Cocoa, entonces eso puede ser útil.

¡Gracias!


Has probado :

import sys sys.stdout.write(''/a'') sys.stdout.flush()

Eso funciona para mí aquí en Mac OS 10.5

En realidad, creo que tu intento original también funciona con una pequeña modificación:

print(''/a'')

(Solo necesita las comillas simples alrededor de la secuencia de caracteres).


Probé el mezclador desde el módulo de pygame, y funciona bien. Primero instala el módulo:

$ sudo apt-get install python-pygame

Luego, en el programa, escribe esto:

from pygame import mixer mixer.init() #you must initialize the mixer alert=mixer.Sound(''bell.wav'') alert.play()

Con pygame tienes muchas opciones de personalización, con las que también puedes experimentar.


Si tiene instalado PyObjC (el puente Python - Objective-C) o se está ejecutando en el sistema python de OS X 10.5 (que se envía con PyObjC), puede hacer

from AppKit import NSBeep NSBeep()

para jugar la alerta del sistema.


Tuve que desactivar la opción "Campana de terminal de silencio" en mi perfil de terminal activo en iTerm for print(''/a'') para trabajar. Parecía funcionar bien por defecto en la Terminal.

También puede usar el módulo Mac Carbon.Snd para escuchar el pitido del sistema:

>>> import Carbon.Snd >>> Carbon.Snd.SysBeep(1) >>>

Los módulos de Carbon no tienen ninguna documentación, así que tuve que usar la help(Carbon.Snd) para ver qué funciones estaban disponibles. Parece ser una interfaz directa con Carbon, por lo que los documentos de Apple Developer Connection probablemente sean útiles.