web-dev-qa-db-ja.com

コマンドラインからWindowsでオーディオファイルを再生する方法は?

Windowsでは、いくつかの.mp3ファイルを再生して、それ自体で終了する簡単な方法(つまり、1つのコマンドラインで入力できるもの)はありますか?

たとえば、wmplayerは終了しても終了しないようで、急いでいるユーザーは毎回それを探してクリックして閉じる必要があります。 (wmplayer 11も、リストを渡すと、一部のファイルが奇妙に繰り返されるようです。)(「mplayer」の古い(1990年代)バージョンは、「/ close」コマンドラインオプションをサポートするために使用されていましたが、 wmplayer 11.)

誰もが自分のマシンに持っているもの(wmplayer、quicktimeなど)を使用したいと思います。

12
Kilo

古い質問、新しい答え-PowerShellを使用できます:

powershell -c (New-Object Media.SoundPlayer 'c:\PathTo\YourSound.wav').PlaySync();
22
joshcomley

cmdmp を使用しました。 28Kbと非常に軽量です。

11
pathe3
  • 純粋なコマンドラインプレーヤーがあります。 いくつかはここにリストされています

  • また、WinAmpにはCLAMPと呼ばれるコマンドラインコントローラーがありました。それがまだ生きているか利用可能かどうかはわかりませんが、グーグルはそれのために-それはかなり良かったです。

  • また、VLCには いくつかのコマンドライン機能 がありますが、私はそれらをチェックアウトしたことはありません。

3
DVK

VBScriptを使用する:

Set objArgs = Wscript.Arguments

if (objArgs.Count = 0) then
    Wscript.echo "I need a sound file as argument!"
    WScript.Quit 123
end if
Wscript.echo "Playing: " & objArgs(0) & "..."

Set objPlayer = createobject("Wmplayer.OCX.7")

With objPlayer  ' saves typing
    .settings.autoStart = True
    .settings.volume = 50  ' 0 - 100
    .settings.balance = 0  ' -100 to 100
    .settings.enableErrorDialogs = False
    .enableContextMenu = False
    .URL = objArgs(0)
    WScript.Sleep(10000)  ' time to load and start playing
    '.Controls.Pause()  ' stop
End With

MsgBox "if WMP is still playing, clicking OK will end it", _
    vbInformation, "WMP Demo finished"

VBScriptプロセスが終了すると、Media Playerも終了するため、待機する必要があります(必要ありません。サウンドの長さは、ほんの数秒です)。

今日はこれを特別な場合に使用しました: https://groups.google.com/forum/#!topic/Microsoft.public.scripting.vbscript/gfOOvnN8t-

3
Mayra Delgado

私はMayraDelgadoの答えのこの改善版を使用しています:

Set objArgs = Wscript.Arguments

if (objArgs.Count = 0) then
    Wscript.echo "I need a sound file as argument!"
    WScript.Quit 123
end if
Wscript.echo "Playing: " & objArgs(0) & "..."

Set objPlayer = createobject("Wmplayer.OCX.7")

With objPlayer  ' saves typing
    .settings.autoStart = True
    .settings.volume = 50  ' 0 - 100
    .settings.balance = 0  ' -100 to 100
    .settings.enableErrorDialogs = False
    .enableContextMenu = False
    .URL = objArgs(0)
    ' Wait until play finish
    While .Playstate <> 1
        Wscript.Sleep 100
    Wend
End With

MsgBox "if WMP is still playing, clicking OK will end it", _
    vbInformation, "WMP Demo finished"
1
ngonhan

これは私がそれをするためにしたことです:

rem Replace the following path with your music file
start C:\Users\Username\Desktop\your-music.mp3
rem Replace 10 with how many seconds you want the player to run
ping localhost -n 10 >nul
taskkill /im wmplayer.exe

これには、.mp3をwmplayer.exe(Windows Media Player)に関連付ける必要があることに注意してください。

1
JMC

おそらく、Windows Media PlayerActiveXコントロールを使用してオーディオファイルを再生する小さなVBScriptを作成できます。再生が終了したら、そこからもプロセスを終了できるはずです。

私は少し周りを見回していて、おそらく実用的な解決策を思い付くことができます。ただし、しばらく時間がかかる場合があります。

0
Joey

fmedia を使用して、Windowsターミナルからオーディオファイルを再生できます。

fmedia file1.mp3 file2.mp3

このコマンドは、file.mp3、次にfile2.mp3の再生を開始し、ファイルの再生が終了した後に終了します。

バックグラウンドで実行する場合は、コマンドに--backgroundスイッチを追加します。

fmedia file.ogg --background

このコマンドは、バックグラウンドで新しいプロセスを開始し、すぐにコンソールから切り離します。

fmediaはポータブルアプリケーション(インストールなしで動作)であり、非常に少量のシステムリソースを消費します。また、起動時間は瞬時です。

P.S.コマンドfmedia.exe --installを使用して%PATH%環境変数に追加します。それ以外の場合は、フルパスで実行する必要があります。 D:\fmedia\fmedia.exe

0
def

Windowsコマンドラインで.mp3ファイルを再生する最速の方法は mpeg12 であることがわかりました

デフォルトでは人のマシンでは利用できないことは知っていますが、私の観点からは、Microsoft独自のプレーヤーは異なるバージョンでも一貫して利用できるわけではありません。

実行時間が重要なプロジェクトで使用しており、特定のフレームのみを再生するなどの機能が非常に便利です。これは(私の構成では)このスレッドで言及されているcmdmp3とvbscriptの例よりも速いと思います。

.mp3ファイルの特定のフレームのみを再生する構文:mpg123.exe -k 2 -n 3 -q -1 -4 beep.mp3

0

ここにいくつかのスクリプトがあります。

mediarunner.bat -Windows MediaPlayerのアクティブXオブジェクトを使用するのでWindows Media Playerがインストールされていない場合は使用できません(通常はWindowsに同梱されています)。1つの引数(再生するファイルへのパス)のみを受け入れます。

spplayer.bat -SP音声オブジェクトを使用しますが.wavファイルのみを再生できます。ここでも、再生するファイルへのパスを引数としてのみ受け入れます。

soundplayer.bat -InternetExplorerオブジェクトと特定のbgsoundタグを使用しますInternet Explorerでのみ使用できます。mp3、wav、..ファイルを再生できます。 2つの引数を受け入れることができます。再生したいファイルと音量(-10000から0までの数値):

 call soundplayer.bat "C:\Windows\Media\Windows Navigation Start.wav" 0
0
npocmaka