人気ブログランキング | 話題のタグを見る
ubuntu aplay で連続 ランダム再生
ubuntu aplay で連続 ランダム再生_f0021035_013342.png


マックでWAVE AIFF MP3 などをランダムに連続再生するスクリプト afplay.pl だが、-def オプションを付けないと権限エラーでほぼ使えない。で、ちょっといじるとUBUNTUのaplayでも使えるはずなのでテストしてみると、使えました。使い方はafplay.plと同じですが、こちらはWAVEファイル専用となります。


## aplay.pl #####################################ここから
#!/usr/bin/perl


## -def オプションで再生したいフォルダー。ほぼ必須 -def
$defaulturl = "";

## 追加フォルダー。ここに書き込んだフォルダー内の該当音楽ファイルは必ず再生されます。
$defaulturls = "";

$max = 0; #再生曲数 0で無制限

@type = (".wav",".wave");
$dir = "./";
$udir = "0";
$list = 0;
$alist = 0;
$noran = 0;
$down = 0;


if ($ARGV[0]){
foreach $_ (@ARGV){

if($_ =~ /\-dir\=/i){
$_ =~ s/\-dir\=//; $dir = $_;
$udir = 8;
}

if($_ =~ /\-max\=/i){$_ =~ s/\-max\=//; $max = $_;}

if($_ =~ /\-def/i){$dir = "$defaulturl"; $udir = 88;}

if($_ =~ /\-list/i){$list = 8;}
if($_ =~ /\-alist/i){$alist = 8;}
if($_ =~ /\-noran/i){$noran = 8;}
if($_ =~ /\-down/i){$down = 8;}
}
}
else{
$dir = "./";
@type = (".aif",".wav",".aiff",".wave",".mp3");
}

&getlist($dir);
if($defaulturls ne ""){&getlist($defaulturls);}


print "\n********************************************\n";
print "aplay.pl は aplay でのランダム演奏用です。\n";
print "ex: perl aplay.pl -alist -list -dir=./sound\n";
print "------------------------------------------------\n";
print "無指定の場合、AIFとWAVを再生します\n";
print "-def (設定したデフォルト\"" . $defaulturl . "\"を再生)\n";
print "-alist (再生一覧リストを表示)\n";
print "-list (再生リストを表示)\n";
print "-noran (ランダム再生しない)\n";
print "-down (逆順に再生)\n";
print "-dir=URL (URLのフォルダー内を演奏)\n";
print "-max=数字 (最大演奏回数、無指定で無制限)\n";
print "演奏中 次の局 Ctrl + C\n";
print "演奏中 中止 Ctrl + Z\n\n";


if($noran){@new = @files; print "\**NORANDOM**\n\n";}
elsif($down){@new = sort {$b cmp $a} @files; print "\**DOWN**\n\n";}
else{
foreach (@files){
my $r = rand @new+1;
push(@new, $new[$r]);
$new[$r] = $_;
}
print "\**RANDOM**\n\n";
}

if($alist){
$listii = 0; print "再生予定リスト\n------------------------------------------------\n";

foreach (@new){$listii ++;print "**$listii** $_\n"; if($listii == $max){last;}}

print "------------------------------------------------\n\n\n";
}

$listi = 0;
foreach (@new){
$listi ++;

$lists = " \"$_\"";

if($list){print "NowPlay**$listi**$lists\n";}

if($list){print "------------------------------------------------\n\n";}
#if($lists){system("afplay $lists");}
if($lists){system("aplay -Vstereo -q $lists");}
else{print "--NoFile--\n\n";}

if($listi == $max){last;}
}

exit;
#-----------------------------------------------------------------------

sub getlist{
my $ndir = $_[0];
my @get;

opendir(IN,$ndir) or die "opendir $dir エラー : $!";
@get = readdir IN;
closedir(IN);

foreach $files (@get){
next if $files =~ /^\.\.$/;
next if $files =~ /^\.$/;


foreach (@type) {
if($files =~ /$_$/i){
if($ndir =~ /^\.\/.+/i){push @files, "$ndir" . "/$files";}
elsif($udir){$ndir =~ s/\/$//i; push @files, "$ndir" . "/$files";}
else{push @files, "$files";}
}
}


if($ndir =~ /^\.\/.+/i){$nndir = $ndir . "/$files";}
elsif($udir){$ndir =~ s/\/$//i; $nndir = "$ndir" . "/$files";}
else{$nndir = $ndir . "$files";}

#print "$nndir\n";#TEST用
if(-d $nndir){&getlist($nndir);}
}

}

################################################# ここまで
by digressive | 2014-07-15 00:14 | Ubuntu | Comments(0)
<< 認知症サポーターキャラバン TDA1554Q in Bos... >>




フリーページあります。

non6 museum

non6 tools

non6 memo



人間は、考える足である。
by ラーメン
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
全体
熟年マカー失業録
DTPに花束を
すみません、取り乱しました。
マカーはケチだから
Ubuntu
プアオーディオ
ペンタブしよう
non6 nuseum
リンク
_f0021035_17382547.gif



ホームページ作成
WEBデザイン(Perl PHP MySQL)
グラフィックデザイン
CI 各種印刷物 広告 SP
はじめました。



NON6 MUSEUM ANEX


■□■□■□




RandomReading《読書記録》
通勤電車が私の書斎さ。
■□■□■□





WEBカラーネーム

WEBカラーチャート

植草一秀の『知られざる真実』
頑張れミラーマン

世に倦む日々
無料版です

天木直人.com
多少偏向していそうだが、
文春よりは参考になる


きっこのブログ
謎のブログ、リンクしていいのかな?

とりまきメモ
ブログというより、日記帳ですね。

LINK MEMO
小生の勝手なリンク集

pixiv

お気に入りブログ
世に倦む日日
絵と音楽のコラボレーショ...
ライフログ
検索
タグ
ブログパーツ
  • 仕様の関係で、右クリックできません。