randmusic.pl
Publicado por zé ricardo 22/02/2005
[ Hits: 3.918 ]
É 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. :(
#!/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);
Algoritmo de Euclides estendido em Perl
Diminuir ou aumentar o brilho de notebook
Testando a agilidade do sistema de arquivos
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Desempenho abaixo do esperado - travadas e congelamento do sistema ope... (3)
HD externo modelo SDK SSD com 15,26 TiB aparece como unidade não aloc... (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta