Randomize MP3

Publicado por Fábio Berbert de Paula 13/11/2002

[ Hits: 4.596 ]

Homepage: https://fabio.automatizando.dev

Download randomMp3.zip




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.

  



Esconder código-fonte

#!/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);

Scripts recomendados

Algoritmo de Euclides estendido em Perl

Login AUDIT

Índice (Logaritmo Discreto) em Perl

Configurar ADB no linux

randmusic.pl


  

Comentários
[1] Comentário enviado por lueneberg em 12/09/2004 - 09:12h

perfeito, estou introduzindo o codigo em uma aplicacao de kommander, outra dica interessante era tocar uma lista salva em um arquivo em vez de determinar um diretorio, ou as duas opcoes......:O) Nota 10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts