randmusic.pl

Publicado por zé ricardo 22/02/2005

[ Hits: 4.191 ]

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

Testando a agilidade do sistema de arquivos

Beep-Media-Player for Torsmo

Algoritmo de Euclides estendido em Perl

Hebraic Style

fonte.pl


  

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