randmusic.pl
Publicado por zé ricardo 22/02/2005
[ Hits: 3.798 ]
É 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
Verificação se utilizador existe ou não
Nenhum comentário foi encontrado.
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Fedora 40 Beta [RESOLVIDO] (6)
O que você está ouvindo agora? [2] (131)
LibreOffice alterar nomenclatura do ícone (15)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter