randmusic.pl

Publicado por zé ricardo 22/02/2005

[ Hits: 3.902 ]

Download randmusic.pl




É um script derivado do randomp3. A diferença é que ele toca ogg's  e wma's tb. Eu já estava com a idéia de fazer um script para isso, como vi que já tinham feito, achei que podia dar uma melhoradinha, tá ae! :) Falta achar um jeito para fechá-lo com ctrl+c e ainda dar a opção de pular a música. Nenhum dos dois scripts faz isso. :(

  



Esconder código-fonte

#!/usr/bin/perl -w

# Script derivado do randomMp3: http://www.vivaolinux.com.br/scripts/verScript.php?codigo=22
# Este toca ogg's e wma's , é necessário ter o ogg123 e o mplayer instalados
# Autor: Zé Ricardo (zehzinho@gmail.com)

use Cwd;
use strict;
use warnings;

my $diretorio = "";

if ($#ARGV != 0) 
{
    $diretorio = getcwd;
}
else
{
    $diretorio = shift;
}

my @arquivos = ();
my %lista = ();
my $menor = 1;

if (!-d $diretorio) 
{
    print "Diretório maluco ?\n";
    exit;
}

chdir $diretorio;
opendir(D,$diretorio);

my @mp3 = grep /\.mp3$/i, readdir(D);
rewinddir D;
my @ogg = grep /\.ogg$/i, readdir (D);
rewinddir D;
my @wma = grep /\.wma$/i, readdir (D);

@arquivos = (@mp3, @ogg, @wma);

# limpando...
@mp3 = ();
@ogg = ();
@wma = ();

closedir(D);

if (!"@arquivos") 
{
    print "Cadê as músicas deste diretório ?\n";
    exit;
}

foreach my $arquivo (@arquivos) 
{
    if (!defined($lista{$arquivo})) 
    {
   $lista{$arquivo} = 1;
    }
}

sub round 
{
    my $x = shift;
    $x = sprintf "%.0f",$x;
    return $x;
}

do 
{
    my $rotates = 0;
    do 
    {
   my $indice = round(rand($#arquivos));
   if ($lista{$arquivos[$indice]} <= $menor) 
   {
       $lista{$arquivos[$indice]}++;
       print "Reproduzindo música: $arquivos[$indice] ...\n";
       
       if ($arquivos[$indice] =~ /.mp3$/i)
       {
      exec("mpg321 '$arquivos[$indice]' 1>>/dev/null 2>>/dev/null") || system("mpg123 '$arquivos[$indice]' 1>>/dev/null 2>>/dev/null") || die "O programa terminou de maneira inesperada\n";
       }
       elsif ($arquivos[$indice] =~ /.ogg$/i)
       {
      exec("ogg123 '$arquivos[$indice]' 1>>/dev/null 2>>/dev/null") || die "O programa terminou de modo inesperado\n";
       }
       else # eh .wma
       {
      exec("mplayer '$arquivos[$indice]' 1>>/dev/null 2>>/dev/null") || die "O programa terminou de modo inesperado\n";
       }
   }
   $rotates++;
    } while ($rotates <= $#arquivos);
    $menor++;
} while(1);

Scripts recomendados

Audacious X-Chat Plugin

Remover lista de pacotes do Portage

Wallpapers aleatórios no Fluxbox

Listar arquivos

Eterm sem bordas


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts