Рейтинг:0

Предупреждения Alsa при запуске PyAudio — как их избежать?

флаг bd

У меня есть следующие предупреждения при создании экземпляра пиаудио.

chris@chris-Inspiron-3847:~/Documents/Projects/Papinhio player/setup/database_init$ python
Python 3.9.7 (по умолчанию, 10 сентября 2021 г., 14:59:43) 
[GCC 11.2.0] в Linux
Введите «помощь», «авторское право», «кредиты» или «лицензия» для получения дополнительной информации.
>>> импортировать пиаудио
>>> 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:~/Документы/Проекты/Проигрыватель Papinhio/setup/database_init$

файл: /usr/доля/alsa/alsa.conf

#
# Файл конфигурации библиотеки ALSA
#

# предварительно загрузить файлы конфигурации

@хуки [
    {
        функциональная нагрузка
        файлы [
            "/usr/etc/alsa/conf.d"
            "/etc/alsa/conf.d"
            "/etc/asound.conf|||/usr/etc/asound.conf"
            "~/.asoundrc"
            {
                @func concat
                строки [
                    {
                        @func getenv
                        вары [
                            XDG_CONFIG_HOME
                        ]
                        по умолчанию "~/.config"
                    }
                    "/alsa/asoundrc"
                ]
            }
        ]
        ошибки ложные
    }
]

# загрузить файлы конфигурации карты (по запросу)

карты.@крючки [
    {
        функциональная нагрузка
        файлы [
            {
                @func concat
                строки [
                    { @func каталог данных }
                    "/cards/aliases.conf"
                ]
            }
        ]
    }
    {
        функция load_for_all_cards
        файлы [
            {
                @func concat
                строки [
                    { @func каталог данных }
                    "/открытки/"
                    { @func приватная_строка }
                    ".конф"
                ]
            }
        ]
        ошибки ложные
    }
]

#
# значения по умолчанию
#

# показать все подсказки имен также для определений без раздела подсказок {}
defaults.namehint.showwall на
# показывать только основные подсказки имени
defaults.namehint.basic на
# показать расширенные подсказки имени
defaults.namehint.extended on
#
defaults.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 # в США
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.channels 2
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format без изменений
defaults.pcm.dmix.card defaults.pcm.card
устройство по умолчанию.pcm.dmix.устройство по умолчанию.pcm.устройство
defaults.pcm.dsnoop.card defaults.pcm.card
устройство по умолчанию.pcm.dsnoop.устройство по умолчанию.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
по умолчанию.pcm.задняя.карта по умолчанию.pcm.карта
по умолчанию.pcm.заднее.устройство по умолчанию.pcm.устройство
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
карта по умолчанию.pcm.iec958.карта по умолчанию.pcm.card
устройство по умолчанию.pcm.iec958.устройство по умолчанию.pcm.устройство
карта по умолчанию.модема.pcm
по умолчанию.pcm.модем.устройство по умолчанию.pcm.устройство
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
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
по умолчанию.таймер.устройство 0
defaults.timer.subdevice 0

#
# Интерфейс ПКМ
#

ПКМ.hw {
    @args [ РАЗРАБОТКА КАРТЫ SUBDEV ]
    @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
        }
    }       
    тип хв
    карта $КАРТА
    устройство $DEV
    подустройство $SUBDEV
    намекать {
        показать {
            @func обратитесь
            имя defaults.namehint.extended
        }
        описание "Прямое аппаратное устройство без каких-либо преобразований"
    }
}

pcm.plughw {
    @args [ РАЗРАБОТКА КАРТЫ SUBDEV ]
    @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
        }
    }       
    тип штекер
    раб.пкм {
        тип хв
        карта $КАРТА
        устройство $DEV
        подустройство $SUBDEV
    }
    намекать {
        показать {
            @func обратитесь
            имя defaults.namehint.extended
        }
        описание "Аппаратное устройство со всеми программными преобразованиями"
    }
}

штепсельная вилка {
    @args [ РАБ ]
    @args.SLAVE {
        введите строку
    }
    тип штекер
    раб.pcm $SLAVE
}

ПКМ.шм {
    @args [РАЗЪЕМ PCM]
    @args.SOCKET {
        введите строку
    }
    @args.PCM {
        введите строку
    }
    тип шм
    сервер $SOCKET
    ПКМ $ПКМ
}

ПКМ.трой {
    @args [ ФОРМАТ ПОДЧИНЕННОГО ФАЙЛА ]
    @args.SLAVE {
        введите строку
    }
    @args.ФАЙЛ {
        введите строку
    }
    @args.FORMAT {
        введите строку
        По умолчанию {
            @func обратитесь
            имя defaults.pcm.file_format
        }
    }
    тип файла
    раб.pcm $SLAVE
    файл $ФАЙЛ
    формат $ФОРМАТ
    обрезать {
        @func обратитесь
        имя defaults.pcm.file_truncate
    }
}

ПКМ.файл {
    @args [ФОРМАТ ФАЙЛА]
    @args.ФАЙЛ {
        введите строку
    }
    @args.FORMAT {
        введите строку
        По умолчанию {
            @func обратитесь
            имя defaults.pcm.file_format
        }
    }
    тип файла
    раб.pcm ноль
    файл $ФАЙЛ
    формат $ФОРМАТ
    обрезать {
        @func обратитесь
        имя defaults.pcm.file_truncate
    }
}

ПКМ.null {
    введите ноль
    намекать {
        показать {
            @func обратитесь
            имя defaults.namehint.basic
        }
        description «Отменить все сэмплы (воспроизведение) или сгенерировать нулевые сэмплы (захват)»
    }
}

# перенаправление на расширенные определения PCM с загрузкой по запросу
pcm.cards карты.pcm

карты pcm.default.pcm.default
pcm.sysdefault карты.pcm.default
ПКМ.передние карты.ПКМ.фронт
#pcm.тыл карты.pcm.тыл
#pcm.center_lfe карты.pcm.center_lfe
#pcm.side карты.pcm.side
#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.модемные карты.PCM.модем
карты pcm.phoneline.pcm.phoneline

#
# Интерфейс управления
#
    
ctl.sysdefault {
    тип хв
    карта {
        @func getenv
        вары [
            ALSA_CTL_CARD
            ALSA_CARD
        ]
        По умолчанию {
            @func обратитесь
            имя defaults.ctl.card
        }
    }
    hint.description "Устройство управления по умолчанию"
}
ctl.по умолчанию ctl.sysпо умолчанию

ctl.hw {
    @args [ КАРТА ]
    @args.CARD {
        введите строку
        По умолчанию {
            @func getenv
            вары [
                ALSA_CTL_CARD
                ALSA_CARD
            ]
            По умолчанию {
                @func обратитесь
                имя defaults.ctl.card
            }
        }
    }
    тип хв
    карта $КАРТА
    hint.description "Устройство прямого управления"
}

ctl.shm {
    @args [КОНТРОЛЬ СОКЕТА]
    @args.SOCKET {
        введите строку
    }
    @args.CTL {
        введите строку
    }
    тип шм
    сервер $SOCKET
    ctl $CTL
}

#
# Интерфейс RawMidi
#

rawmidi.default {
    тип хв
    карта {
        @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 [ РАЗРАБОТКА КАРТЫ SUBDEV ]
    @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
    }
    тип хв
    карта $КАРТА
    устройство $DEV
    подустройство $SUBDEV
    намекать {
        описание "Прямой драйвер устройства rawmidi"
        устройство $DEV
    }
}

сыроймиди.виртуальный {
    @args [ ОБЪЕДИНИТЬ ]
    @args.MERGE {
        введите строку
        по умолчанию 1
    }
    тип виртуальный
    объединить $MERGE
}

#
# Интерфейс секвенсора
#

seq.default {
    тип хв
    hint.description "Устройство-секвенсор по умолчанию"
}

seq.hw {
    тип хв
}

#
# Интерфейс HwDep
#

hwdep.default {
    тип хв
    карта {
        @func getenv
        вары [
            ALSA_HWDEP_CARD
            ALSA_CARD
        ]
        По умолчанию {
            @func обратитесь
            имя defaults.hwdep.card
        }
    }
    устройство {
        @func igetenv
        вары [
            ALSA_HWDEP_DEVICE
        ]
        По умолчанию {
            @func обратитесь
            имя defaults.hwdep.device
        }
    }
    hint.description "Аппаратно-зависимое устройство по умолчанию"
}

hwdep.hw {
    @args [ РАЗРАБОТКА КАРТЫ ]
    @args.CARD {
        введите строку
        По умолчанию {
            @func getenv
            вары [
                ALSA_HWDEP_CARD
                ALSA_CARD
            ]
            По умолчанию {
                @func обратитесь
                имя defaults.hwdep.card
            }
        }
    }
    @args.DEV {
        введите целое число
        По умолчанию {
            @func igetenv
            вары [
                ALSA_HWDEP_DEVICE
            ]
            По умолчанию {
                @func обратитесь
                имя defaults.hwdep.device
            }
        }
    }
    тип хв
    карта $КАРТА
    устройство $DEV
    намекать {
        описание "Прямое аппаратно-зависимое устройство"
        устройство $DEV
    }
}

#
# Интерфейс таймера
#

timer_query.default {
    тип хв
}

timer_query.hw {
    тип хв
}

timer.default {
    тип хв
    учебный класс {
        @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 CARD 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
        }
    }
    тип хв
    класс $КЛАСС
    класс $SCLASS
    карта $КАРТА
    устройство $DEV
    подустройство $SUBDEV
    намекать {
        описание "Устройство прямого таймера"
        устройство $DEV
    }
}

Несмотря на предупреждения, модуль работает хорошо (полностью не тестировался).

Тем не менее, я хотел бы удалить их, если это возможно. Какие-либо предложения?

Soren A avatar
флаг mx
Какие предупреждения вы имеете в виду?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.