Wie kann ich unter Mac OS X einen Sound über die Befehlszeile abspielen?

38

Ich möchte eine kurze Audiodatei über die Befehlszeile in Mac OS X abspielen, unabhängig von einer Audio-Player-Anwendung, um zu benachrichtigen, dass ein langer Auftrag abgeschlossen ist.

Kevin Reid
quelle

Antworten:

46

Es ist ein integriertes Tool: afplay <sound file>. Die Manpage dokumentiert nicht alle Optionen, die Sie über Folgendes finden afplay -h:

Usage:
afplay [option...] audio_file

Options: (may appear before or after arguments)
  {-v | --volume} VOLUME
    set the volume for playback of the file
  {-h | --help}
    print help
  { --leaks}
    run leaks analysis
  {-t | --time} TIME
    play for TIME seconds
  {-r | --rate} RATE
    play at playback rate
  {-q | --rQuality} QUALITY
    set the quality used for rate-scaled playback (default is 0 - low quality, 1 - high quality)
  {-d | --debug}
    debug print output

Es wird nicht mehr als eine Audiodatei abgespielt.

Kevin Reid
quelle
1
afplay hat manchmal diesen Fehler: superuser.com/questions/319174/… . Gibt es Alternativen?
22.
Vorsicht bei der -vOption: Ein Wert von 1scheint "100%" zu bedeuten!
Doctaphred
20

Einmal, als der Strom bei der Arbeit ausfiel und ich wusste, dass meine Firewall zu dem letzten Zustand (eingeschaltet) zurückkehren würde, als die Stromversorgung wieder hergestellt wurde, schrieb ich ein Skript in Bash, das den sayBefehl verwendete, um mich zu wecken, als der Strom kam wieder auf.

Kirche
quelle
13
Ich liebe es, den sayBefehl zu missbrauchen .
NReilingh
In der Tat sayist relevant für diese Art von Problem und eine gute alternative Lösung. Hab eine Stimme! Ich wollte jedoch speziell einen kurzen Sound spielen, da das Hören einer Phrase für meinen Anwendungsfall lästig werden würde.
Kevin Reid
Interessanter Hinweis: Wenn Sie remote über ssh an einem Computer angemeldet sind, sayfunktioniert dies nur, wenn Sie sudoes tun . (Es macht viel Spaß, die Computer anderer Leute zum Reden zu bringen.)
Daniel Griscom,
11

Hast du überlegt printf "\a\a\a"oder echo -e "\a\a\a"?

blahdiblah
quelle
Für diejenigen, die dies nicht wissen, ist dies die Kontrollsequenz für 'bell', die auf den meisten Systemen einen 'bonking'-Sound erzeugt
John Hunt