randmusic.pl

Publicado por zé ricardo 22/02/2005

[ Hits: 3.918 ]

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

Weather Channel for Torsmo

Algoritmo de Euclides estendido em Perl

Role-Playing Script

Diminuir ou aumentar o brilho de notebook

Testando a agilidade do sistema de arquivos


  

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