Score:0

Alsa เตือนเมื่อฉันเริ่ม PyAudio - ฉันจะหลีกเลี่ยงได้อย่างไร

ธง bd

ฉันมีคำเตือนต่อไปนี้ในขณะที่สร้างอินสแตนซ์ เสียง.

chris@chris-Inspiron-3847:~/Documents/Projects/Papinhio player/setup/database_init$ หลาม
Python 3.9.7 (ค่าเริ่มต้น 10 กันยายน 2021, 14:59:43 น.) 
[GCC 11.2.0] บนลินุกซ์
พิมพ์ "help", "copyright", "credits" หรือ "license" เพื่อดูข้อมูลเพิ่มเติม
>>> นำเข้า pyaudio
>>> p = pyaudio.PyAudio()
ALSA lib pcm_dmix.c:1075:(snd_pcm_dmix_open) ไม่สามารถเปิดทาสได้
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) พอร์ตฟิลด์ที่ไม่รู้จัก
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) พอร์ตฟิลด์ที่ไม่รู้จัก
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) ประเภทการ์ดไม่ถูกต้อง
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) ประเภทการ์ดไม่ถูกต้อง
ALSA lib pcm_dmix.c:1075:(snd_pcm_dmix_open) ไม่สามารถเปิดทาสได้
>>> ทางออก ()
chris@chris-Inspiron-3847:~/Documents/Projects/Papinhio player/setup/database_init$

ไฟล์: /usr/share/alsa/alsa.conf

#
# ไฟล์กำหนดค่าไลบรารี ALSA
#

# โหลดไฟล์การกำหนดค่าล่วงหน้า

@ตะขอ [
    {
        ฟังค์ชั่นโหลด
        ไฟล์ [
            "/usr/etc/alsa/conf.d"
            "/etc/alsa/conf.d"
            "/etc/asound.conf|||/usr/etc/asound.conf"
            "~/.asoundrc"
            {
                @func เชื่อมต่อ
                สตริง [
                    {
                        @func getenv
                        วาร์ [
                            XDG_CONFIG_HOME
                        ]
                        เริ่มต้น "~/.config"
                    }
                    "/อัลซา/asoundrc"
                ]
            }
        ]
        ข้อผิดพลาดเป็นเท็จ
    }
]

# โหลดไฟล์การกำหนดค่าเฉพาะการ์ด (ตามคำขอ)

cards.@hooks [
    {
        ฟังค์ชั่นโหลด
        ไฟล์ [
            {
                @func เชื่อมต่อ
                สตริง [
                    { @func datadir }
                    "/cards/aliases.conf"
                ]
            }
        ]
    }
    {
        ฟังก์ชัน load_for_all_cards
        ไฟล์ [
            {
                @func เชื่อมต่อ
                สตริง [
                    { @func datadir }
                    "/การ์ด/"
                    { @func ส่วนตัว_string }
                    ".conf"
                ]
            }
        ]
        ข้อผิดพลาดเป็นเท็จ
    }
]

#
# ค่าเริ่มต้น
#

# แสดงคำใบ้ชื่อทั้งหมดสำหรับคำจำกัดความที่ไม่มีคำใบ้ {} ส่วน
defaults.namehint.showall บน
# แสดงเพียงคำใบ้ชื่อพื้นฐาน
defaults.namehint.basic บน
# แสดงคำแนะนำชื่อเพิ่มเติม
defaults.namehint.extended บน
#
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000 # ในเรา
defaults.pcm.ipc_key 5678293
เสียง defaults.pcm.ipc_gid
defaults.pcm.ipc_perm 0660
defaults.pcm.tstamp_type ค่าเริ่มต้น
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.channels2
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format ไม่เปลี่ยนแปลง
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 ดิบ
defaults.pcm.file_truncate true # ตัดไฟล์ผ่านไฟล์หรือที PCM
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
ค่าเริ่มต้น hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#อินเทอร์เฟซ PCM
#

pcm.hw {
    @args [ การ์ด DEV ย่อย DEV ]
    @args.CARD {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func getenv
            วาร์ [
                ALSA_PCM_CARD
                ALSA_CARD
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.pcm.card
            }
        }
    }
    @args.DEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func igetenv
            วาร์ [
                ALSA_PCM_DEVICE
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.pcm.device
            }
        }
    }
    @args.SUBDEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.pcm.subdevice
        }
    }       
    พิมพ์ hw
    การ์ด $CARD
    อุปกรณ์ $DEV
    อุปกรณ์ย่อย $SUBDEV
    คำใบ้ {
        แสดง {
            @func อ้างอิง
            ชื่อ defaults.namehint.extended
        }
        คำอธิบาย "อุปกรณ์ฮาร์ดแวร์โดยตรงโดยไม่มีการแปลงใดๆ"
    }
}

pcm.plughw {
    @args [ การ์ด DEV ย่อย DEV ]
    @args.CARD {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func getenv
            วาร์ [
                ALSA_PCM_CARD
                ALSA_CARD
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.pcm.card
            }
        }
    }
    @args.DEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func igetenv
            วาร์ [
                ALSA_PCM_DEVICE
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.pcm.device
            }
        }
    }
    @args.SUBDEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.pcm.subdevice
        }
    }       
    ประเภทปลั๊ก
    ทาส.pcm {
        พิมพ์ hw
        การ์ด $CARD
        อุปกรณ์ $DEV
        อุปกรณ์ย่อย $SUBDEV
    }
    คำใบ้ {
        แสดง {
            @func อ้างอิง
            ชื่อ defaults.namehint.extended
        }
        คำอธิบาย "อุปกรณ์ฮาร์ดแวร์พร้อมการแปลงซอฟต์แวร์ทั้งหมด"
    }
}

pcm.ปลั๊ก {
    @args [ ทาส ]
    @args.SLAVE {
        พิมพ์สตริง
    }
    ประเภทปลั๊ก
    slave.pcm $ทาส
}

pcm.shm {
    @args [ ซ็อกเก็ต PCM ]
    @args.SOCKET {
        พิมพ์สตริง
    }
    @args.PCM {
        พิมพ์สตริง
    }
    พิมพ์ shm
    เซิร์ฟเวอร์ $SOCKET
    พีซีเอ็ม $พีซีเอ็ม
}

pcm.tee {
    @args [ รูปแบบไฟล์ทาส ]
    @args.SLAVE {
        พิมพ์สตริง
    }
    @args.FILE {
        พิมพ์สตริง
    }
    @args.FORMAT {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.pcm.file_format
        }
    }
    ไฟล์ประเภท
    slave.pcm $ทาส
    ไฟล์ $FILE
    จัดรูปแบบ $FORMAT
    ตัดทอน {
        @func อ้างอิง
        ชื่อ defaults.pcm.file_truncate
    }
}

pcm.file {
    @args [ รูปแบบไฟล์ ]
    @args.FILE {
        พิมพ์สตริง
    }
    @args.FORMAT {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.pcm.file_format
        }
    }
    ไฟล์ประเภท
    slave.pcm เป็นโมฆะ
    ไฟล์ $FILE
    จัดรูปแบบ $FORMAT
    ตัดทอน {
        @func อ้างอิง
        ชื่อ defaults.pcm.file_truncate
    }
}

pcm.null {
    พิมพ์ null
    คำใบ้ {
        แสดง {
            @func อ้างอิง
            ชื่อ defaults.namehint.basic
        }
        คำอธิบาย "ทิ้งตัวอย่างทั้งหมด (เล่นกลับ) หรือสร้างตัวอย่างเป็นศูนย์ (จับภาพ)"
    }
}

# เปลี่ยนเส้นทางไปยังคำจำกัดความ pcm แบบขยายตามความต้องการ
pcm.cards การ์ด.pcm

pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.หน้าบัตร.pcm.หน้า
#pcm.การ์ดหลัง.pcm.การ์ดหลัง
#pcm.center_lfe การ์ด.pcm.center_lfe
#pcm.ไซด์การ์ด.pcm.ไซด์
#pcm.surround21 การ์ด.pcm.surround21
#pcm.surround40 การ์ด.pcm.surround40
#pcm.surround41 การ์ด.pcm.surround41
#pcm.surround50 การ์ด.pcm.surround50
#pcm.surround51 การ์ด.pcm.surround51
#pcm.surround71 การ์ด.pcm.surround71
การ์ด pcm.iec958.pcm.iec958
pcm.spdif iec958
การ์ด pcm.hdmi.pcm.hdmi
การ์ด pcm.dmix.pcm.dmix
การ์ด pcm.dsnoop.pcm.dsnoop
การ์ด pcm.modem.pcm.modem
pcm.บัตรโทรศัพท์ไลน์.pcm.phoneline

#
#ส่วนต่อประสานการควบคุม
#
    
ctl.sysdefault {
    พิมพ์ hw
    การ์ด {
        @func getenv
        วาร์ [
            ALSA_CTL_CARD
            ALSA_CARD
        ]
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.ctl.card
        }
    }
    คำใบ้ คำอธิบาย "อุปกรณ์ควบคุมเริ่มต้น"
}
ctl.default ctl.sysdefault

ctl.hw {
    @args [ การ์ด ]
    @args.CARD {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func getenv
            วาร์ [
                ALSA_CTL_CARD
                ALSA_CARD
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.ctl.card
            }
        }
    }
    พิมพ์ hw
    การ์ด $CARD
    คำใบ้ คำอธิบาย "อุปกรณ์ควบคุมโดยตรง"
}

ctl.shm {
    @args [ ซ็อกเก็ต CTL ]
    @args.SOCKET {
        พิมพ์สตริง
    }
    @args.CTL {
        พิมพ์สตริง
    }
    พิมพ์ shm
    เซิร์ฟเวอร์ $SOCKET
    ctl $CTL
}

#
# อินเทอร์เฟซ RawMidi
#

rawmidi.default {
    พิมพ์ hw
    การ์ด {
        @func getenv
        วาร์ [
            ALSA_RAWMIDI_CARD
            ALSA_CARD
        ]
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.rawmidi.card
        }
    }
    อุปกรณ์ {
        @func igetenv
        วาร์ [
            ALSA_RAWMIDI_DEVICE
        ]
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.rawmidi.device
        }
    }
    Hint.description "อุปกรณ์ MIDI ดิบเริ่มต้น"
}

rawmidi.hw {
    @args [ การ์ด DEV ย่อย DEV ]
    @args.CARD {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func getenv
            วาร์ [
                ALSA_RAWMIDI_CARD
                ALSA_CARD
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.rawmidi.card
            }
        }
    }
    @args.DEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func igetenv
            วาร์ [
                ALSA_RAWMIDI_DEVICE
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.rawmidi.device
            }
        }
    }
    @args.SUBDEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น -1
    }
    พิมพ์ hw
    การ์ด $CARD
    อุปกรณ์ $DEV
    อุปกรณ์ย่อย $SUBDEV
    คำใบ้ {
        คำอธิบาย "อุปกรณ์ไดรเวอร์ rawmidi โดยตรง"
        อุปกรณ์ $DEV
    }
}

rawmidi.virtual {
    @args [ รวม ]
    @args.MERGE {
        พิมพ์สตริง
        ค่าเริ่มต้น 1
    }
    พิมพ์เสมือน
    รวม $MERGE
}

#
# อินเทอร์เฟซซีเควนเซอร์
#

seq.default {
    พิมพ์ hw
    คำใบ้ คำอธิบาย "อุปกรณ์ซีเควนเซอร์เริ่มต้น"
}

seq.hw {
    พิมพ์ hw
}

#
# อินเทอร์เฟซ HwDep
#

hwdep.default {
    พิมพ์ hw
    การ์ด {
        @func getenv
        วาร์ [
            ALSA_HWDEP_CARD
            ALSA_CARD
        ]
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.hwdep.card
        }
    }
    อุปกรณ์ {
        @func igetenv
        วาร์ [
            ALSA_HWDEP_DEVICE
        ]
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.hwdep.device
        }
    }
    คำใบ้ คำอธิบาย "อุปกรณ์ขึ้นอยู่กับฮาร์ดแวร์เริ่มต้น"
}

hwdep.hw {
    @args [ การ์ด DEV ]
    @args.CARD {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func getenv
            วาร์ [
                ALSA_HWDEP_CARD
                ALSA_CARD
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.hwdep.card
            }
        }
    }
    @args.DEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func igetenv
            วาร์ [
                ALSA_HWDEP_DEVICE
            ]
            ค่าเริ่มต้น {
                @func อ้างอิง
                ชื่อ defaults.hwdep.device
            }
        }
    }
    พิมพ์ hw
    การ์ด $CARD
    อุปกรณ์ $DEV
    คำใบ้ {
        คำอธิบาย "อุปกรณ์ขึ้นอยู่กับฮาร์ดแวร์โดยตรง"
        อุปกรณ์ $DEV
    }
}

#
# อินเทอร์เฟซตัวจับเวลา
#

timer_query.default {
    พิมพ์ hw
}

timer_query.hw {
    พิมพ์ hw
}

ตัวจับเวลาเริ่มต้น {
    พิมพ์ hw
    ระดับ {
        @func อ้างอิง
        ชื่อ defaults.timer.class
    }
    คลาส {
        @func อ้างอิง
        ชื่อ defaults.timer.sclass
    }
    การ์ด {
        @func อ้างอิง
        ชื่อ defaults.timer.card
    }
    อุปกรณ์ {
        @func อ้างอิง
        ชื่อ defaults.timer.device
    }
    อุปกรณ์ย่อย {
        @func อ้างอิง
        ชื่อ defaults.timer.subdevice
    }
    Hint.description "อุปกรณ์จับเวลาเริ่มต้น"
}

ตัวจับเวลา hw {
    @args [ คลาส SCLASS การ์ด DEV SUBDEV ]
    @args.CLASS {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.timer.class
        }
    }
    @args.SCLASS {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.timer.sclass
        }
    }
    @args.CARD {
        พิมพ์สตริง
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.timer.card
        }
    }
    @args.DEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.timer.device
        }
    }
    @args.SUBDEV {
        พิมพ์จำนวนเต็ม
        ค่าเริ่มต้น {
            @func อ้างอิง
            ชื่อ defaults.timer.subdevice
        }
    }
    พิมพ์ hw
    คลาส $CLASS
    สคลาส $SCLASS
    การ์ด $CARD
    อุปกรณ์ $DEV
    อุปกรณ์ย่อย $SUBDEV
    คำใบ้ {
        คำอธิบาย "อุปกรณ์จับเวลาโดยตรง"
        อุปกรณ์ $DEV
    }
}

แม้จะมีคำเตือน แต่ดูเหมือนว่าโมดูลจะทำงานได้ดี (ไม่ผ่านการทดสอบอย่างสมบูรณ์)

ฉันยังคงต้องการลบออกหากเป็นไปได้ ข้อเสนอแนะใด ๆ

Soren A avatar
mx flag
คุณกำลังอ้างถึงคำเตือนอะไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา