web-dev-qa-db-ja.com

すべてのファイルをランダムに再生できるミニマルなターミナルミュージックプレーヤー

ターミナルミュージックプレーヤーを探しています。 mpg321/mpg123は私が必要としているものですが、できません すべての音楽ディレクトリを再生します (子ディレクトリが含まれています)。 cmusは、私が使用したことのない機能がたくさんあるので、少しやり過ぎのようです。

必要なのは、音楽ディレクトリとおそらく--randomフラグを指定できるプログラムだけです。そうすれば、すべてがランダムな順序で再生されます。誰かが私が持っているオプションを指摘できますか?

7
phunehehe

findおよびrl(debianのパッケージrandomize-lines)を使用して、スクリプトを簡単にまとめることができます。

次のようなもの:

find "$1" -type f -name *.mp3 | rl | while read FILE; do mpg123 "$FILE"; done
8
Mr Shunz

コマンドラインプレーヤーとして gst12 を使用します。親ディレクトリにポイントすると、-zフラグが付いた子ディレクトリとシャッフルされます。このように実行します。

 gst123 -z ~/Music
6
Steve Burdine

Mocがあります-コンソール上の音楽。 mpdよりも単純ですが、ncursesフロントエンドが埋め込まれています。 mocpでncursesTUIを使用するか、サーバーと直接通信できます。

もちろん、ネットワークストリーミング、さまざまな出力を同時に行うなど、mpdが実行できるすべての気の利いたことを実行できるわけではありません。しかし、ローカルマシン上の単純なコンソールプレーヤーとしては、非常に便利です。 mpdとは対照的に、初期構成なしで機能します。 mocpがパラメーターなしで呼び出されると、サーバーは自動的に起動します。または、手動で起動することもできます。

サーバーを起動します

mocp -S

サーバーに、プレイリストに音楽フォルダを追加(-a)し、シャッフルをオン(-oシャッフル)にして再生を開始(-p)するように指示します。

mocp -o shuffle -p -a ~/mymusicfolder

私は9.2GBのflacファイルを持っていますが、sata 1hddからロードするのに6秒しか必要ありません。私のsata2ssdからそれは瞬時です。私の出力はalsaです。 (構成する必要はありませんでした)

https://wiki.archlinux.org/index.php/Moc

5
kulpae

[〜#〜] mpd [〜#〜] サーバーバックエンドと個別のフロントエンドで構成されています(同じマシンで実行する必要はありません)。そのための優れたコマンドラインクライアントがいくつかあります( http://mpd.wikia.com/wiki/Clients を参照)

4
fschmitt

私は多様なミニマルミュージックプレーヤーをいじくり回してきましたが、今日は、由緒あるxmmsミュージックプレーヤーの子孫(やや)である比較的最近のxmms2 1 に特に偏っています。

これは堅牢なクライアントサーバーアプリケーションであり、コマンドラインまたは複数のグラフィカルクライアントからフル機能で実行し、利用可能なほぼすべての音楽エンコーディングを再生し、可能な限り少ないプロセッサ時間を使用して音楽コレクションを管理するように設計されています。

1
chiguire

私はmplayerを使用しています。音楽フォルダからファイルのリストを生成しました。mplayerはそのファイルをプレイリストとして取得し、ランダムな順序で再生できます。

1
Patkos Csaba

このシェルを介して、すべてが再生されるまで曲を繰り返さずに、音楽ライブラリがランダムに再生されます。

再生された曲の履歴はファイルに記録されます*. Sh.his。この履歴は、音楽ライブラリに曲を追加した場合、またはライブラリのすべての曲をすでに聴いた場合に自動的にリセットされ、新しいランダムリストが生成されます。あなたが望むときはいつでもあなたは履歴をリセットすることができますファイルを削除しています*. Sh.his

#!/bin/bash

#-----------------------------------INFO----------------------------------------------------------

#Through this Shell, your music library will be played randomly, without repeating any songs until all have been played. 
#The history of songs played is recorded in the file "*. Sh.his". 
#This history is reset automatically if you added a song to the music library or have already heard all the songs of your library, 
#generating a new random list ever. Whenever you want you can reset the history is deleting the file "*. Sh.his".

#Press "q" to skip song
#Press "p" to pause song and resume song

#------------------------------CONFIGURATION------------------------------------------------------

#mplayer package needed (For debian/Ubuntu/Mint: "$ apt-get install mplayer")

#Select your music library path (all recursive folders will be included in the .mp3 files search):
path="/media/Datos/Música/Music/"

#-------------------------------------------------------------------------------------------------

while true
do

cadena=$(find "$path" -iname '*.mp3')                                   #search media files
nmedia=$(echo "$cadena" | wc -l)

if [ -f "$0.his" ]                                          #file exist
then
    value=$(<"$0.his")                                      #read file

    if [[ ( $(echo "$value" | sed -n 1p) != $nmedia ) || ( $(echo "$value" | sed -n 2p) == 0 ) ]]   #reset file conditions
    then
        listrand=$(seq 1 $nmedia | shuf)
        index=$nmedia
    else                                                #no reset file conditions
        nmedia=$(echo "$value" | sed -n 1p)
        index=$(echo "$value" | sed -n 2p)
        listrand=$(echo "$value" | sed -n 3p)
        listrand=$(echo "$listrand" | sed s/" "/\\n/g)
    fi  

else                                                    #file not exist
    listrand=$(seq 1 $nmedia | shuf)
    index=$nmedia
fi

nrand=$(echo "$listrand" | sed -n "$index"p)                                #select random number
cadena=$(echo "$cadena" | sed -n "$nrand"p)                             #select song with random number
index=$((index-1))                                          #write file
echo $nmedia > "$0.his"
echo $index >> "$0.his"
echo $listrand >> "$0.his"
mplayer "$cadena"                                           #play media file

done
exit 0
0
Felipe