ubuntu 12.04 を使用しており、Rhythmbox データベースにクエリを実行するための Python プラグインを作成しようとしています。Rhythmbox のバージョンは v2.96 ですが、この問題は v2.97 でも発生します。Python クエリを実行すると、Ubuntu がセグメンテーション エラーでクラッシュします。
以下が正しいことを確認する必要があります。また、Ubuntu に固有のバグを見つけた場合、または正しくクエリする方法を誤解した場合は、確認する必要があります。別のディストリビューションを使用している他の誰かが確認できる場合-これは大歓迎です.
セグメンテーション違反に関して、bugzilla にバグ レポートを提出しました。ただし、私の質問は厳密にはこれに関するものではありません。具体的には、データを照会するための正しい python コードを確認しようとしています。
したがって、私の質問: Rhythmbox データベースをクエリするには、以下のコード スニペットは正しいですか、それとも、クエリを有効にするために追加のパッケージをインストールする必要がありますか?
手順:
- Python コンソール プラグインを有効にする
- 入力します(または、次の行ごとにコピーして貼り付けます)
from gi.repository import RB, GLib デシベル = shell.props.db query_model = RB.RhythmDBQueryModel.new_empty(db) クエリ = GLib.PtrArray() db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.ARTIST, 'アーティスト名' ) db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.TITLE, '曲名' ) db.do_full_query_parsed(query_model, クエリ) query_model の行: 行を印刷[0].get_string( RB.RhythmDBPropType.ARTIST ) 行を印刷[0].get_string( RB.RhythmDBPropType.TITLE )
この行を入力したときにubuntu 12.04の場合、Ubuntuはセグメンテーション違反でクラッシュします
db.query_append_params( query, RB.RhythmDBQueryType.EQUALS, RB.RhythmDBPropType.ARTIST, 'some artist name' )
したがって、呼び出しの最初のパラメーター (クエリ ポインター配列 (PtrArray)) を実際に正しく使用したか、またはクエリ関数のパラメーターが正しくないか?