randmusic.pl
Publicado por zé ricardo 22/02/2005
[ Hits: 4.113 ]
É 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);
Tirando screenshots facilmente !
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









