randmusic.pl

Publicado por zé ricardo 22/02/2005

[ Hits: 3.639 ]

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 ([email protected])

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

Diminuir ou aumentar o brilho de notebook

MyBF - Interpretador de BrainFuck

Índice (Logaritmo Discreto) em Perl

Check All Process

Audacious X-Chat Plugin


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts