首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pygame Midi libasound_module_conf_pulse.so错误+无法打开从属

Pygame Midi libasound_module_conf_pulse.so错误+无法打开从属
EN

Stack Overflow用户
提问于 2020-11-02 08:03:46
回答 1查看 273关注 0票数 1

当我试图运行我的pygame.midi代码时,我得到了这个错误:

代码语言:javascript
复制
ALSA lib conf.c:3558:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/usr/lib/alsa-lib/libasound_module_conf_pulse.so: libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib seq.c:935:(snd_seq_open_noupdate) Unknown SEQ default

我发现Python搜索的路径并不存在。由于某些原因,libasound_module_conf_pulse.so位于/usr/lib/x86_64-linux-gnu/alsa-lib中,所以我在/usr/lib/中创建了alsa-lib目录,并将usr/lib/x86_64-linux-gnu/alsa-lib的内容复制到其中。

这修复了第一个错误。现在,我遇到了另一个错误,我认为这与我上面应用的真正可疑的修复程序有关(为什么我将这两个问题都包含在同一个问题中)。运行pygame.init()时,我收到以下错误:

ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slave

我在网上搜索了一下,只发现了一个相关的问题,但遗憾的是没有得到回答。我所理解的是,使用来自pygame.midi的方法是可行的,但是使用来自pygame的方法,例如init,会抛出错误。

因此,下面的代码运行得很好:

代码语言:javascript
复制
import pygame.midi
import pygame

def print_devices():
    for n in range(pygame.midi.get_count()):
        print (n,pygame.midi.get_device_info(n))

def number_to_note(number):
    notes = ['c', 'c#', 'd', 'd#', 'e', 'f', 'f#', 'g', 'g#', 'a', 'a#', 'b']
    return notes[number%12]

def readInput(input_device):
    clock = pygame.time.Clock()
    while True:
        if input_device.poll():
            event = input_device.read(1)[0]
            data = event[0]
            timestamp = event[1]
            note_number = data[1]
            velocity = data[2]
            if (velocity!=0):
                print (number_to_note(note_number), velocity)



if __name__ == '__main__':
    pygame.midi.init()
    my_input = pygame.midi.Input(3)
    readInput(my_input)
    my_output = pygame.midi.Output(2)
    my_output.note_on(90,120)
    my_output.note_off(90, 120)

但是添加pygame.init()会抛出从错误。

我在PyCharm中使用Ubuntu20.04和Python3.8。

编辑:在终端上直接用Python运行上面的代码不会给出pygame.init()上的从机错误,但有时会给出(snd_pcm_recover) underrun occurred错误。

EN

回答 1

Stack Overflow用户

发布于 2021-10-04 19:09:40

我在搅拌器中使用PyGame也有同样的问题,上面的"hack“,复制文件到/usr/lib/alsa-lib为我摆脱了这个错误,并使声音和PyGame正常工作。我只有在Ubuntu上有这个问题,而我的Mac没有。我从来没有得到过“从属”错误。

我正在使用PyGame从键盘或控制器输入实时MIDI命令,以便在搅拌器中设置动画。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64638256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档