Date: 2011feb2
OS: Linux
Q. How do I play audio/sounds on the command line with Linux?
A. If its a .mp3 you can use /usr/bin/mpg123.
If its a .au or .wav you can use /usr/bin/play.
For Red Hat / Fedora mpg123 is in the mpg123 package.
/usr/bin/play is in the sox package. ie
dnf install mpg123 sox
will install them.
Here's a small perl command line script which checks the extension
on an audio file and uses appropriate program to play it.
#!/usr/bin/perl
use strict;
sub isMp3($)
{
my($file) = @_;
return $file =~ m/.mp3$/i;
}
sub play($)
{
my($file) = @_;
my(@args);
if (isMp3($file))
{
if (!defined $ENV{'HOME'})
{
$ENV{'HOME'} = '/tmp'; # mpg123 needs a home directory
}
@args = ("/usr/bin/mpg123", $file);
}
else
{
@args = ("/usr/bin/play", $file);
}
return system @args == 0;
}
sub main()
{
if (scalar @ARGV != 1)
{
printf STDERR "Exactly one audio file required\n";
exit(1);
}
play($ARGV[0]);
}
main();