Mainkan suara (mungkin WAV?) Dari perintah baris Windows

26

Bagaimana saya bisa memainkan suara (Bip atau wav CPU, tidak peduli apa) menggunakan cmd Windows?

Thiago Belem
sumber
4
Menggunakan start file.wavadalah ide yang buruk. Mungkin butuh satu detik untuk memulai pemutar media yang membengkak, hanya untuk satu bip. Selain itu, asosiasi file mungkin salah, pemutar media mungkin tidak memutar file, atau mungkin memutarnya berulang-ulang, dll . Cara membuat "bip" sederhana adalah dengan menulis beep ^G. "^ G" bukan aksen sirkumfleks yang diikuti dengan huruf kapital G, melainkan karakter khusus yang Anda masukkan dengan menekan Ctrl + G. Ini sebenarnya adalah karakter BEL dengan nilai ASCII 0x07.
Andreas Rejbrand

Jawaban:

-2

Tidak di windows sekarang, untuk menguji solusi yang mungkin ini, tetapi cobalah untuk: "mulai"

Saya pikir itu akan membuka file wav dengan program terkait yang dimiliki windows Anda untuk file ".wav".

Dan perhatikan, ini adalah tebakan liar - seseorang dengan windows mungkin memberi Anda solusi yang lebih baik jika ini tidak berhasil

zipizap
sumber
1
Yah, itu pasti akan membuka file dalam aplikasi apa pun yang terkait dengan jenisnya, tetapi hanya itu. Terserah aplikasi itu untuk memutuskan apa fungsinya dengan itu - mungkin memainkannya, mungkin menambahkannya ke antrian, atau sesuatu yang lain. Bahkan jika itu memainkan file, kemungkinan besar itu tidak akan berakhir setelah diputar, artinya ini mungkin ide yang buruk.
Ini bukan jawaban yang terbaik!
Antonio
@Antonio, itu pada tahun 2010 :)
zipizap
Hebatnya, ini ditandai sebagai, "jawaban terbaik" yang diterima! 😁
Henrik
50

Anda dapat melakukan ini secara asli dengan PowerShell. PowerShell disertakan dengan Windows Vista dan yang lebih baru, dan dapat diunduh dari Microsoft untuk versi yang lebih lama.


File gelombang

PowerShell dapat digunakan untuk memuat System.Media.SoundPlayerkelas .NET, yang dapat digunakan untuk memutar file gelombang.

(New-Object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").Play();

Jika mau, Anda dapat menjalankan ini dari baris perintah normal:

powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();

(catatan yang PlaySyncdigunakan dalam contoh kedua karena permainan asinkron standar akan terganggu oleh penutupan proses PowerShell ketika diluncurkan seperti ini)

Dan jika Anda ingin memainkan hanya yang pertama, katakanlah, 5 detik suara:

powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").Play(); Start-Sleep -s 5; Exit;

Berbunyi

Bip dapat dengan mudah dicapai dalam baris perintah normal dengan echo ^G(di mana ^Gmerepresentasikan BEL, karakter ASCII 7, dimasukkan dengan Ctrl+ G), seperti yang dijelaskan dalam jawaban lain. Untuk kepentingan kelengkapan, inilah metode PowerShell:

echo ^G

Ya, sama dengan yang cmdada. echodi PowerShell adalah alias (artinya berarti hal yang sama) untuk Write-Host, yang menampilkan sesuatu ke layar (atau memicu suara notifikasi Windows dalam kasus BEL).

Metode alternatif di PowerShell adalah menggunakan urutan escape untuk BEL, daripada memasukkan karakter BEL literal dengan Ctrl+ G:

echo `a

`adalah karakter pelarian PowerShell, yang mengubah arti karakter setelahnya. Melarikan diri amenunjukkan BEL. Keuntungan dari pendekatan ini adalah lebih mudah dan lebih terlihat ketika diketik ke dalam skrip.

Untuk menjalankan ini dalam file batch (sekali lagi, Vista atau yang lebih baru):

powershell -c echo `a

sumber

Bob
sumber
Apakah mungkin untuk memiliki perintah ini membunuh dan saat ini memutar file wav sebelum menjalankan file wav baru?
Dodd10x
@ Dodd10x Tidak mudah untuk audio global, tidak. Bisakah Anda memberikan lebih banyak konteks? Apakah Anda berniat untuk membunuh atau berhenti sebentar? Apakah pemain lain contoh lain dari skrip ini, atau pemutar media, atau browser, permainan, dll? Jika itu contoh lain dari skrip yang sama, maka itu jauh lebih sederhana (meskipun masih tidak sepenuhnya sepele).
Bob
Ini contoh lain dari skrip yang sama. Saya pikir saya bisa menambahkan baris untuk membunuh powershell.exe dalam daftar tugas pertama
Dodd10x
@ Dodd10x Ada dua cara yang saya sarankan. Pertama adalah untuk mendapatkan ID proses dari instance PowerShell dan menyimpannya ke file, lalu membunuh ID itu di awal instance baru (dan menghapus file). Ini lebih aman daripada membunuh semua proses PS. Cara lain adalah menggunakan semaphore (flag / sinyal) di PowerShell - Anda akan memberi sinyal semaphore, gunakan Play()(async), tunggu semaphore, dan tutup. Semaphores adalah cara yang lebih bersih untuk melakukan ini, tetapi sedikit lebih rumit. Dengan senang hati saya akan membahas lebih lanjut dalam obrolan .
Bob
11
echo ^G

Di mana ^Gadalah CTRL + Gatau Alt + 7pada keypad.

theMike
sumber
5

Penanganan masalah (semacam):

1) jalankan file audio

2) tunggu hingga trek berakhir (dalam kasus saya 5 detik) dan tutup pemutar media

start wmplayer "C:\Windows\Media\Alarm10.wav" && timeout 5 && taskkill /im wmplayer.exe
yuliskov
sumber
4

Instal VLC. Gunakan perintah berikut. Itu dimulai BENAR-BENAR cepat. Inilah yang saya gunakan pada Windows 7 b / c wmplayer membutuhkan waktu yang lama untuk memuat, dan opsi / tutup telah dihapus dari wmplayer.

vlc.exe --play-and-exit audio.wav
Mark Ribau
sumber
Sayangnya ini berjalan di latar depan
honzajde
Ya, ini dimaksudkan untuk menggantikan metode wmplayer karena lambat untuk memuat dan mereka menghilangkan dukungan untuk argumen / tutup. Metode PowerShell mungkin merupakan taruhan terbaik.
Mark Ribau
1
Bagi mereka yang mencari solusi VLC tanpa kepala, vlc -I dummy --dummy-quiet t.mp3 vlc://quitdari forum.videolan.org/viewtopic.php?t=79516#p262603
MLM
2

(Sementara utas lama, orang akan menemukannya pada penelusuran). Saya melihat seseorang telah merekomendasikan VLC. Saya menggunakannya untuk memutar suara di Windows tanpa apa pun yang terlihat menggunakan parameter: "c: \ Program Files (x86) \ videolan \ vlc \ vlc.exe" --qt-start-diminized --play-and-exit "c: \ Program Files (x86) \ videolan \ vlc \ Windows Exclamation.wav "

Tambahan utama pada komentar sebelumnya adalah --qt-start-diminimalkan. Jalur dan karakter kutipan hanya untuk menggambarkan penggunaan khusus. Saya telah menggunakan ini tidak berubah di XP, 7, 10; Saya berharap Vista dan 8.x juga berfungsi.

pol098
sumber
1

Jika bunyi bip polos baik-baik saja, gema karakter dengan nilai 7, yang disebut karakter bel . Namun, perhatikan bahwa bip dapat dimatikan.

Jika Anda menginginkan sesuatu yang lain, Anda harus meluncurkan aplikasi yang berhasil.

Michael Madsen
sumber
1

Anda bisa menulis aplikasi konsol sederhana yang mengambil file suara (atau id suara) sebagai argumen dan disebut PlaySound

John Knoeller
sumber
1

Solusi yang sangat ringan adalah cmndPlayWAV.jar yang juga berfungsi di Linux dan OS / X. Ini memiliki suara bawaan jika tidak ada parameter yang ditentukan atau Anda dapat memberikan path lengkap ke file .wav. Kebetulan orang selalu bisa membuat pesan audio .wav untuk digunakan dengan Windows Recorder.

budrow1138
sumber
Selamat Datang di Pengguna Super! Silakan baca Bagaimana saya merekomendasikan perangkat lunak untuk beberapa tips tentang bagaimana Anda harus merekomendasikan perangkat lunak. Anda harus memberikan setidaknya tautan, beberapa informasi tambahan tentang perangkat lunak itu sendiri, dan bagaimana hal itu dapat digunakan untuk menyelesaikan masalah dalam pertanyaan.
DavidPostill
0

Di XP saya melakukan ini

start /min mplay32 /play /close %WINDIR%\media\tada.wav

Ini tidak ideal tetapi sangat mudah dan bekerja.

Mr. Shiny dan New 安 宇
sumber
0

Saya gunakan mplayeruntuk ini. Sedikit berlebihan karena dapat memutar hampir semua file media. Build windows terbaru dapat ditemukan di spirton , pada 2013. Contoh penggunaan:

mplayer c:\windows\media\chimes.wav

Anda harus menambahkan mplayer.exe ke PATH Anda (lihat Apa itu PATH dan variabel lingkungan lainnya, dan bagaimana saya bisa mengatur atau menggunakannya? Atau Bagaimana saya dapat secara permanen menambahkan entri ke variabel PATH sistem, melalui baris perintah? Untuk melakukan ini. )

n611x007
sumber
0

Anda dapat menggunakan fmedia untuk memutar file suara dari terminal Windows:

fmedia file.mp3

Perintah ini akan memulai pemutaran file.mp3di latar depan dan berhenti setelah file selesai diputar.

Jika Anda ingin melakukannya di latar belakang, tambahkan --backgroundberalih ke perintah Anda:

fmedia file.wav --background

Perintah ini akan memulai proses baru di latar belakang dan segera lepas dari konsol Anda.

fmedia adalah aplikasi portabel (berfungsi tanpa instalasi) dan menghabiskan sumber daya sistem dalam jumlah yang sangat kecil. Juga, waktu startup-nya instan.

PS Gunakan perintah fmedia.exe --installuntuk menambahkannya ke %PATH%variabel lingkungan Anda , jika tidak, Anda perlu menjalankannya dengan path lengkap, mis D:\fmedia\fmedia.exe.

def
sumber