Randomize MP3
Script escrito em PERL usado para reproduzir arquivos MP3 de um diretório de formarandômica. Este script, ao contrário do xmms e do mpg123, tem sua lógica de randomização eficiente, não repetindo uma música antes que todas as outras sejam previamente reproduzidas.
Descrição
Script escrito em PERL usado para reproduzir arquivos MP3 de um diretório de formarandômica. Este script, ao contrário do xmms e do mpg123, tem sua lógica de randomização eficiente, não repetindo uma música antes que todas as outras sejam previamente reproduzidas.
#!/usr/bin/perl
if ($#ARGV != 0) {
print "Qual diretório ?\n";
exit;
}
use strict;
my $diretorio = shift;
my @arquivos = ();
my %lista = ();
my $menor = 1;
if (!-d $diretorio) {
print "Diretório maluco ?\n";
exit;
}
chdir $diretorio;
opendir(D,$diretorio);
@arquivos = grep /\.mp3$/i, readdir(D);
closedir(D);
if (!"@arquivos") {
print "Cadê os MP3 deste diretório ?\n";
exit;
}
print "Termine o programa com 'kill -HUP $$' ...\n";
foreach my $arquivo (@arquivos) {
if (!defined($lista{$arquivo})) {
$lista{$arquivo} = 1;
}
}
sub round {
my $x = shift;
$x = sprintf "%.0f",$x;
return $x;
}
do {
# SHUFFLE MODE
my $rotates = 0;
do {
my $indice = round(rand($#arquivos));
if ($lista{$arquivos[$indice]} <= $menor) {
$lista{$arquivos[$indice]}++;
print "Reproduzindo música: $arquivos[$indice] ...\n";
system("mpg123 '$arquivos[$indice]' 1>>/dev/null 2>>/dev/null");
$rotates++;
}
} while ($rotates <= $#arquivos);
$menor++;
} while(1);