Tôi có các cảnh báo sau trong khi khởi tạo pyaudio
.
chris@chris-Inspiron-3847:~/Documents/Projects/Papinhio player/setup/database_init$ python
Python 3.9.7 (mặc định, ngày 10 tháng 9 năm 2021, 14:59:43)
[GCC 11.2.0] trên linux
Nhập "trợ giúp", "bản quyền", "tín dụng" hoặc "giấy phép" để biết thêm thông tin.
>>> nhập pyaudio
>>> p = pyaudio.PyAudio()
ALSA lib pcm_dmix.c:1075:(snd_pcm_dmix_open) không thể mở nô lệ
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Cổng trường không xác định
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Cổng trường không xác định
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Loại thẻ không hợp lệ
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Loại thẻ không hợp lệ
ALSA lib pcm_dmix.c:1075:(snd_pcm_dmix_open) không thể mở nô lệ
>>> thoát()
chris@chris-Inspiron-3847:~/Documents/Projects/Papinhio player/setup/database_init$
tập tin: /usr/share/alsa/alsa.conf
#
# Tệp cấu hình thư viện ALSA
#
# tải trước các tập tin cấu hình
@hook [
{
tải chức năng
các tập tin [
"/usr/etc/alsa/conf.d"
"/etc/alsa/conf.d"
"/etc/asound.conf|||/usr/etc/asound.conf"
"~/.asoundrc"
{
@func concat
dây [
{
@func getenv
bình [
XDG_CONFIG_HOME
]
mặc định "~/.config"
}
"/alsa/asoundrc"
]
}
]
lỗi sai
}
]
# tải tệp cấu hình dành riêng cho thẻ (theo yêu cầu)
thẻ.@hook [
{
tải chức năng
các tập tin [
{
@func concat
dây [
{ @func datadir }
"/cards/aliases.conf"
]
}
]
}
{
func load_for_all_cards
các tập tin [
{
@func concat
dây [
{ @func datadir }
"/thẻ/"
{ @func private_string }
".conf"
]
}
]
lỗi sai
}
]
#
# mặc định
#
# hiển thị tất cả các gợi ý tên cho các định nghĩa không có phần gợi ý {}
defaults.namehint.showall trên
# chỉ hiển thị gợi ý tên cơ bản
defaults.namehint.basic trên
# hiển thị gợi ý tên mở rộng
defaults.namehint.extends trên
#
mặc định.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000 # trong chúng tôi
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid âm thanh
defaults.pcm.ipc_perm 0660
defaults.pcm.tstamp_type mặc định
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.channels 2
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format không thay đổi
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
#defaults.pcm.surround21.card defaults.pcm.card
#defaults.pcm.surround21.device defaults.pcm.device
#defaults.pcm.surround40.card defaults.pcm.card
#defaults.pcm.surround40.device defaults.pcm.device
#defaults.pcm.surround41.card defaults.pcm.card
#defaults.pcm.surround41.device defaults.pcm.device
#defaults.pcm.surround50.card defaults.pcm.card
#defaults.pcm.surround50.device defaults.pcm.device
#defaults.pcm.surround51.card defaults.pcm.card
#defaults.pcm.surround51.device defaults.pcm.device
#defaults.pcm.surround71.card defaults.pcm.card
#defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
defaults.pcm.file_format thô
defaults.pcm.file_truncate true # cắt bớt tệp qua tệp hoặc tee PCM
mặc định.rawmidi.card 0
mặc định.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0
#
# giao diện PCM
#
pcm.hw {
@args [ THẺ DEV SUBDEV ]
@args.CARD {
gõ chuỗi
mặc định {
@func getenv
bình [
ALSA_PCM_CARD
ALSA_CARD
]
mặc định {
@func tham khảo
tên defaults.pcm.card
}
}
}
@args.DEV {
gõ số nguyên
mặc định {
@func igetenv
bình [
ALSA_PCM_DEVICE
]
mặc định {
@func giới thiệu
tên defaults.pcm.device
}
}
}
@args.SUBDEV {
gõ số nguyên
mặc định {
@func giới thiệu
tên defaults.pcm.subdevice
}
}
gõ hw
thẻ $CARD
thiết bị $DEV
thiết bị phụ $SUBDEV
gợi ý {
trình diễn {
@func giới thiệu
tên defaults.namehint.extends
}
mô tả "Thiết bị phần cứng trực tiếp mà không có bất kỳ chuyển đổi nào"
}
}
pcm.plughw {
@args [ THẺ DEV SUBDEV ]
@args.CARD {
gõ chuỗi
mặc định {
@func getenv
bình [
ALSA_PCM_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.pcm.card
}
}
}
@args.DEV {
gõ số nguyên
mặc định {
@func igetenv
bình [
ALSA_PCM_DEVICE
]
mặc định {
@func giới thiệu
tên defaults.pcm.device
}
}
}
@args.SUBDEV {
gõ số nguyên
mặc định {
@func giới thiệu
tên defaults.pcm.subdevice
}
}
loại phích cắm
nô lệ.pcm {
gõ hw
thẻ $CARD
thiết bị $DEV
thiết bị phụ $SUBDEV
}
gợi ý {
trình diễn {
@func giới thiệu
tên defaults.namehint.extends
}
mô tả "Thiết bị phần cứng với tất cả các chuyển đổi phần mềm"
}
}
pcm.plug {
@args [ NÔ LỆ ]
@args.SLAVE {
gõ chuỗi
}
loại phích cắm
nô lệ.pcm $SLAVE
}
pcm.shm {
@args [ Ổ CẮM PCM ]
@args.SOCKET {
gõ chuỗi
}
@args.PCM {
gõ chuỗi
}
gõ shm
máy chủ $SOCKET
pcm $PCM
}
pcm.tee {
@args [ ĐỊNH DẠNG TỆP NÔ LỆ ]
@args.SLAVE {
gõ chuỗi
}
@args.FILE {
gõ chuỗi
}
@args.FORMAT {
gõ chuỗi
mặc định {
@func giới thiệu
tên defaults.pcm.file_format
}
}
gõ tập tin
nô lệ.pcm $SLAVE
tập tin $FILE
định dạng $FORMAT
cắt bớt {
@func giới thiệu
tên defaults.pcm.file_truncate
}
}
pcm.file {
@args [ ĐỊNH DẠNG TỆP ]
@args.FILE {
gõ chuỗi
}
@args.FORMAT {
gõ chuỗi
mặc định {
@func giới thiệu
tên defaults.pcm.file_format
}
}
gõ tập tin
nô lệ.pcm null
tập tin $FILE
định dạng $FORMAT
cắt ngắn {
@func giới thiệu
tên defaults.pcm.file_truncate
}
}
pcm.null {
gõ null
gợi ý {
trình diễn {
@func giới thiệu
tên defaults.namehint.basic
}
mô tả "Hủy tất cả các mẫu (phát lại) hoặc không tạo mẫu (chụp)"
}
}
# chuyển hướng đến các định nghĩa pcm mở rộng tải theo yêu cầu
pcm.cards thẻ.pcm
pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.front cards.pcm.front
#pcm.rear cards.pcm.rear
#pcm.center_lfe cards.pcm.center_lfe
#pcm.side cards.pcm.side
#pcm.surround21 thẻ.pcm.surround21
#pcm.surround40 thẻ.pcm.surround40
#pcm.surround41 thẻ.pcm.surround41
#pcm.surround50 thẻ.pcm.surround50
#pcm.surround51 thẻ.pcm.surround51
#pcm.surround71 thẻ.pcm.surround71
thẻ pcm.iec958.pcm.iec958
pcm.spdif iec958
thẻ pcm.hdmi.pcm.hdmi
pcm.dmix cards.pcm.dmix
thẻ pcm.dsnoop.pcm.dsnoop
pcm.modem cards.pcm.modem
pcm.phoneline cards.pcm.phoneline
#
# Giao diện điều khiển
#
ctl.sysdefault {
gõ hw
Thẻ {
@func getenv
bình [
ALSA_CTL_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.ctl.card
}
}
gợi ý.mô tả "Thiết bị điều khiển mặc định"
}
ctl.default ctl.sysdefault
ctl.hw {
@args [ THẺ ]
@args.CARD {
gõ chuỗi
mặc định {
@func getenv
bình [
ALSA_CTL_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.ctl.card
}
}
}
gõ hw
thẻ $CARD
gợi ý.mô tả "Thiết bị điều khiển trực tiếp"
}
ctl.shm {
@args [ Ổ CẮM CTL ]
@args.SOCKET {
gõ chuỗi
}
@args.CTL {
gõ chuỗi
}
gõ shm
máy chủ $SOCKET
ctl $CTL
}
#
# Giao diện RawMidi
#
rawmidi.default {
gõ hw
Thẻ {
@func getenv
bình [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.rawmidi.card
}
}
thiết bị {
@func igetenv
bình [
ALSA_RAWMIDI_DEVICE
]
mặc định {
@func giới thiệu
tên defaults.rawmidi.device
}
}
gợi ý.mô tả "Thiết bị MIDI thô mặc định"
}
rawmidi.hw {
@args [ THẺ DEV SUBDEV ]
@args.CARD {
gõ chuỗi
mặc định {
@func getenv
bình [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.rawmidi.card
}
}
}
@args.DEV {
gõ số nguyên
mặc định {
@func igetenv
bình [
ALSA_RAWMIDI_DEVICE
]
mặc định {
@func giới thiệu
tên defaults.rawmidi.device
}
}
}
@args.SUBDEV {
gõ số nguyên
mặc định -1
}
gõ hw
thẻ $CARD
thiết bị $DEV
thiết bị phụ $SUBDEV
gợi ý {
mô tả "Thiết bị trình điều khiển rawmidi trực tiếp"
thiết bị $DEV
}
}
rawmidi.virtual {
@args [ HỢP NHẤT ]
@args.MERGE {
gõ chuỗi
mặc định 1
}
gõ ảo
hợp nhất $MERGE
}
#
# Giao diện trình tự
#
seq.default {
gõ hw
gợi ý.mô tả "Thiết bị trình tự mặc định"
}
seq.hw {
gõ hw
}
#
# Giao diện HwDep
#
hwdep.default {
gõ hw
Thẻ {
@func getenv
bình [
ALSA_HWDEP_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.hwdep.card
}
}
thiết bị {
@func igetenv
bình [
ALSA_HWDEP_DEVICE
]
mặc định {
@func giới thiệu
tên defaults.hwdep.device
}
}
gợi ý.mô tả "Thiết bị phụ thuộc vào phần cứng mặc định"
}
hwdep.hw {
@args [ THẺ DEV ]
@args.CARD {
gõ chuỗi
mặc định {
@func getenv
bình [
ALSA_HWDEP_CARD
ALSA_CARD
]
mặc định {
@func giới thiệu
tên defaults.hwdep.card
}
}
}
@args.DEV {
gõ số nguyên
mặc định {
@func igetenv
bình [
ALSA_HWDEP_DEVICE
]
mặc định {
@func giới thiệu
tên defaults.hwdep.device
}
}
}
gõ hw
thẻ $CARD
thiết bị $DEV
gợi ý {
mô tả "Thiết bị phụ thuộc phần cứng trực tiếp"
thiết bị $DEV
}
}
#
# Giao diện hẹn giờ
#
timer_query.default {
gõ hw
}
timer_query.hw {
gõ hw
}
hẹn giờ.default {
gõ hw
lớp {
@func giới thiệu
tên defaults.timer.class
}
lớp {
@func giới thiệu
tên defaults.timer.sclass
}
Thẻ {
@func giới thiệu
tên defaults.timer.card
}
thiết bị {
@func giới thiệu
tên defaults.timer.device
}
thiết bị phụ {
@func giới thiệu
tên defaults.timer.subdevice
}
gợi ý.mô tả "Thiết bị hẹn giờ mặc định"
}
hẹn giờ.hw {
@args [ THẺ LỚP LỚP DEV SUBDEV ]
@args.CLASS {
gõ số nguyên
mặc định {
@func giới thiệu
tên defaults.timer.class
}
}
@args.CLASS {
gõ số nguyên
mặc định {
@func giới thiệu
tên defaults.timer.sclass
}
}
@args.CARD {
gõ chuỗi
mặc định {
@func giới thiệu
tên defaults.timer.card
}
}
@args.DEV {
gõ số nguyên
mặc định {
@func giới thiệu
tên defaults.timer.device
}
}
@args.SUBDEV {
gõ số nguyên
mặc định {
@func giới thiệu
tên defaults.timer.subdevice
}
}
gõ hw
lớp $CLASS
lớp $CLASS
thẻ $CARD
thiết bị $DEV
thiết bị phụ $SUBDEV
gợi ý {
mô tả "Thiết bị hẹn giờ trực tiếp"
thiết bị $DEV
}
}
Bất chấp các cảnh báo, mô-đun dường như hoạt động tốt (chưa được kiểm tra đầy đủ).
Tôi vẫn muốn loại bỏ chúng nếu có thể. Bất kỳ đề xuất?