randmusic.pl
Publicado por zé ricardo 22/02/2005
[ Hits: 4.185 ]
É 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);
Wallpapers aleatórios no Fluxbox
Testando a agilidade do sistema de arquivos
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Alguém executou um rm e quase mata a Pixar! (4)
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









