Điểm:0

Cảnh báo của Alsa khi tôi khởi động PyAudio - làm cách nào để tránh chúng?

lá cờ bd

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?

Soren A avatar
lá cờ mx
Bạn đang đề cập đến những cảnh báo nào?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.