2012-03-27 32 views
5

Wie kann ich ein Skript in Ruby schreiben, das mp3-Datei (Hintergrund-Musik) spielt, wenn es von der Kommandozeile ausgeführt wird?Wie spiele ich MP3-Dateien?

ich versucht, dieses

run = "mplayer #{"/Users/bhushan/resume/m.mp3"} -ao sdl -vo x11 -framedrop -cache 16384 -cache-min 20/100" 
system(run) 

aber es ist auch nicht funktioniert, oben ist Spieler spezifisch. Was ist, wenn der Benutzer mplayer nicht installiert hat? Gibt es einen besseren Weg?

+0

was sagen funktioniert es, wenn es nicht funktioniert? funktioniert es von der Befehlszeile? – rogerdpack

+0

Da Sie auf einem Mac zu sein scheinen, warum verwenden Sie '-vo x11'? –

+0

es sagt nichts. Rückgabewert ist 'false' der letzten Anweisung –

Antwort

14

ich in der Regel nur tun

pid = fork{ exec 'mpg123','-q', file } 
+8

auf mac-os-x pid = fork {exec 'afplay', Datei} – Simonini

1

Sie können Ruby-Code schreiben, die verschiedene Spieler verwendet.

Zum Beispiel kann eine Klasse-I verwenden:

https://gist.github.com/2217498

Statt mplayer, ein SOx oder vlc oder etwas anderes verwenden könnte. In Ihrem Beispiel können Sie Ihren Code jederzeit erweitern. Anstelle von hardcoded MPlayer, könnten Sie dies aus einer Yaml-Datei lesen, die Sie dynamisch ändern können.

Sie können auch versuchen, gstreamer direkt über ruby-gtk zu verwenden.

Aber denken Sie daran, Ruby selbst kann keine Audiodateien abspielen.

Es wäre cool, wenn jemand einen reinen Rubinspieler erstellen könnte.