Putar file mp3 menggunakan python
Saya memiliki kode ini yang disebut Program Hitung Mundur. Apa yang dilakukan program saya adalah:
Hitung mundur dari 60.
Putar file suara (
alarm.wav) saat hitungan mundur mencapai nol. Artinya, kode perlu melakukan hal berikut:Jeda selama satu detik di antara menampilkan setiap nomor dalam hitungan mundur dengan menelepon
time.sleep().Panggilan
subprocess.Popen()untuk membuka file suara dengan aplikasi default.
Ini kodenya:
import time , subprocess,os
from subprocess import call
def countDown():
for i in range (10):
print(i, end='')
time.sleep(1)
countDown()
subprocess.call([ 'bomb.mp3'])
Ketika saya menjalankan ini, saya mendapatkan:
Error: File not Found
Saya mencoba dengan:
subprocess.call([ 'home/username/bomb.mp3']) # location specified
Tapi saya mendapat:
Error: Permission denied
Lalu, saya coba dengan Popen:
subprocess.Popen(['start', 'bomb.mp3'], shell=True)
Tapi saya mendapat:
Error: 0123456789bomb.mp3: 1: start: not found
Saya tidak begitu yakin mengapa kode ini tidak berfungsi di Ubuntu, karena berfungsi dengan baik di Windows.
Apa yang bisa saya lakukan untuk ini? Apakah ada metode untuk membuka file mp3 menggunakan Python di Ubuntu 20.04 LTS atau apakah saya melewatkan argumen?
Terima kasih sebelumnya.
Jawaban
Menggunakan:
subprocess.call(['xdg-open', '/home/username/bomb.mp3'])
bomb.mp3(atau alarm.wav) bukanlah program atau skrip yang ingin Anda jalankan, tetapi file yang ingin Anda buka. Karena tujuan Anda tampaknya untuk membukanya dalam aplikasi grafis apa pun yang saat ini terdaftar untuk menanganinya - yang setidaknya dilakukan oleh salah satu versi skrip Anda sebelumnya saat dijalankan di Windows - Anda harus menggunakan xdg-openperintah.
Selain menggunakan xdg-open, saya juga menambahkan /petunjuk ke depan jalur, yang tanpanya itu diselesaikan relatif terhadap direktori saat ini (yang mungkin akan gagal kecuali jika direktori saat ini adalah /).
Versi pertama dari program Anda, atau sesuatu yang mirip dengannya, mungkin berfungsi di Windows karena, di Windows, file yang tidak dapat dijalankan dapat dijalankan sebagai perintah. Ini menyebabkan mereka terbuka dengan program apa pun yang terkait dengan jenis file mereka. Kebanyakan sistem operasi dan kebanyakan shell tidak berperilaku seperti ini. Windows juga menyediakan perintah untuk melakukan ini (dengan semantik yang sedikit berbeda) yang dipanggil start. Tetapi sistem operasi lain, seperti Ubuntu, tidak memiliki start. Jadi ketika Anda mencobanya di Ubuntu, itu juga tidak berhasil.
Apa yang dimiliki Ubuntu adalah xdg-open. Ubuntu tidak sendirian di sini - xdg-opentidak berfungsi di Windows atau macOS, tetapi berfungsi pada sistem dengan lingkungan desktop grafis yang mengikuti standar freedesktop.org . Ini mencakup hampir semua sistem GNU / Linux (dan beberapa sistem operasi mirip Unix lainnya) jika pengguna menginstal lingkungan desktop grafis .
Agar xdg-openperintah benar-benar berhasil , pengguna harus masuk ke sesi grafis.
(Di macOS, Anda akan menggunakan open.)