在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?
Posted
技术标签:
【中文标题】在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?【英文标题】:Playing cross-platform, mobile, MIDI in Python for Kivy - is this possible? 【发布时间】:2014-11-11 19:50:56 【问题描述】:我想在 Kivy 中加载和播放“.mid”MIDI 文件,但主要在移动平台上(即 IOS 和 Android)。
我假设,我不想深入了解基于原生 C/C++ 的东西的复杂性(即避免交叉编译,我不是经验丰富的 Python 开发人员),所以库,很可能需要是纯 Python。
我将从我找到的一些框架开始竞标(有些需要 C/C++),我没有使用过(0,零),也许有人可以提供一些反馈(或者它们可能对更广泛的社区):
顺便说一句,如果/a MIDI 库也可以从“.mid”文件中读取歌词,那就太好了
Python Midi 库
http://web.mit.edu/music21https://github.com/cuthbertLab/music21https://code.google.com/p/midiutil https://code.google.com/p/mingushttp://mxm.dk/products/public/pythonmidihttp://das.nasophon.de/mididings@ 987654327@ https://gist.github.com/anonymous/202595 http://webcache.googleusercontent.com/search?q=cache%3Alarndham.net%2Fservice%2Fpys60%2Fsmidi.pyhttps://pypi.python.org/pypi/midi http://www.fluidsynth.org http://sourceforge.net/p/fluidsynth
【问题讨论】:
查看此处获取线索***.com/questions/16088764/… 【参考方案1】:我正在使用 Fluidsynth 为我提供跨平台的 MIDI 输出。它使用 SoundFont 模块播放 MIDI 文件,以获得高质量的音频。如果您对 LGPL 许可证感到满意,您可以从 pyFluidSynth (https://code.google.com/p/pyfluidsynth) 获取它的 Python 绑定,但使用标准 Python ctypes 模块编写自己的绑定模块非常简单。
通常,您应该从提供的源代码编译(并因此交叉编译)Fluidsynth,但是您可以只从另一个项目中获取预编译版本,例如 MuseScore。这就是我目前正在做的事情,一旦(如果)我正在处理的项目接近完成,我将切换到编译 Fluidsynth。
如果您想处理 MIDI 文件,例如要提取歌词,请查看 Mido (https://mido.readthedocs.org/en/latest)。我发现它对于读/写 MIDI 文件非常有用。
【讨论】:
以上是关于在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?的主要内容,如果未能解决你的问题,请参考以下文章
《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——VideoPlayer视频播放
如何在 Kivy Python 中为 GridLayout 的某些按钮设置高度?
如何在kivy python中使用滑块作为进度条并控制音频?