python - 如何在 Rhythmbox 中查询数据

标签 python gio rhythmbox

我正在使用 ubuntu 12.04,我正在尝试编写一个 python 插件来查询 Rhythmbox 数据库。 Rhythmbox 版本是 v2.96,但 v2.97 也会出现此问题。当我执行 python 查询时,Ubuntu 因段错误而崩溃。

我需要确认以下内容是否正确,以及我是否发现了 Ubuntu 特有的错误,或者我是否误解了如何正确查询。如果使用其他发行版的任何其他人可以确认 - 这将是最受欢迎的。

我已经提交了 bug report关于段错误的 bugzilla。但是,我的问题并不是严格意义上的 - 它专门试图确认正确的 python 代码来查询数据。

因此我的问题是:下面的代码片段是否可以正确查询 Rhythmbox 数据库,或者我是否需要安装一个额外的包来启用查询。

步骤:

  1. 启用 python 控制台插件
  2. 键入(或逐行复制并粘贴以下内容)

from gi.repository import RB, GLib

db = shell.props.db
query_model = RB.RhythmDBQueryModel.new_empty(db)
query = GLib.PtrArray()

db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.ARTIST, 'some artist name' )
db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.TITLE, 'some song name' )   

db.do_full_query_parsed(query_model, query)

for row in query_model:
    print row[0].get_string( RB.RhythmDBPropType.ARTIST )
    print row[0].get_string( RB.RhythmDBPropType.TITLE )

If ubuntu 12.04 when I type this line, Ubuntu crashes with a segmentation fault

db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.ARTIST, 'some artist name' )

因此,我实际上是否正确使用了调用中的第一个参数 - 查询指针数组 (PtrArray) - 还是我的查询函数参数不正确?

最佳答案

答案是...

好吧,这个问题确实是一个错误——但要回答我自己的问题,

在 Rhythmbox 中查询数据的语法与问题中所述的一样正确。

但是有一个......

查询数据仅适用于 64 位 linux。

是的,我一直在测试 Fedora 17 和 LMDE 的 32 位 live-cd。两者都表现出与 Ubuntu 12.04 相同的段错误问题。

共同点是我在 Ubuntu 12.04/Fedora 17 和 LMDE 的 32 位版本中进行了测试。

在其 64 位变体中测试所有三个都按预期工作。

32 位问题是一个错误 - 已在 bugzilla 上报告过 - 但所提出的问题已得到解答。

谢谢。

关于python - 如何在 Rhythmbox 中查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12133250/

相关文章:

python - 如果安装了 pytest-xdist,如何通过 pytest -nauto 启用并行性?

python - 如何处理 Python 中的大内存占用?

python - 如何使用 Python 在 Rhythmbox 中获取当前正在播放的歌曲

python - 无效请求错误 : Must provide an 'engine' parameter while invoking openAI API for text generation

python - 有没有办法检索在随机 Torchvision 变换中使用的特定参数?

c - 如何解析 "a(oa{sv})"dbus类型?

vala - 如何从 Vala 中的字符串创建输入流

c - 如何使用 GTK/GIO 设置徽章?

php - 从其他用户那里获取节奏盒信息