randmusic.pl

Publicado por zé ricardo 22/02/2005

[ Hits: 4.106 ]

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

Mega Sena

Login AUDIT

Eterm sem bordas

Wallpaper no Fluxbox

FileSystem Alert


  

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