Làm cách nào để phát âm thanh hệ thống với Python?


8

Tôi đang viết một ứng dụng nhắc nhở nhỏ và muốn phát âm thanh hệ thống sau khi bộ đếm thời gian đạt đến 0. Cách dễ nhất để phát âm thanh đó là gì và bạn muốn giới thiệu âm thanh nào?

Câu trả lời:


15

Cách dễ nhất có lẽ là bỏ ra:

system("/usr/bin/canberra-gtk-play --id='bell'")

Điều này sẽ làm việc trong các ngôn ngữ lập trình khác là tốt.

/usr/bin/canberra-gtk-playsẽ phát một âm thanh từ chủ đề âm thanh hiện tại. Xem thông số đặt tên âm thanh freedesktop.org để biết danh sách các âm thanh có sẵn và ý nghĩa của chúng. Coi chừng rằng (theo như tôi biết) không có chủ đề âm thanh cung cấp tất cả những âm thanh này.

Sử dụng ls /usr/share/sounds/ubuntu/stereođể xem những âm thanh nào được hỗ trợ bởi chủ đề âm thanh 'ubfox' mặc định và hiếm khi thay đổi (do không có cách dễ dàng để cài đặt các chủ đề âm thanh) trên Ubuntu.


Cảm ơn! Bạn có bất cứ gợi ý về nơi tôi có thể tìm thấy nhiều id hơn không? Bởi vì 'chuông' không thực sự phù hợp với tôi.
Ingo

Xem câu trả lời cập nhật.
dv3500ea

6
Để an toàn, tôi khuyên bạn nên sử dụng subprocess. Thực hiện dựa trên chuỗi có thể dẫn đến các tình huống nguy hiểm. Ví dụ:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook

@Kees Cook, Vui lòng giải thích cách thực hiện lệnh trên qua system () có thể dẫn đến "tình huống nguy hiểm".
Cerin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.