たぶんこれは明らかであり、私はそれを見逃しているか、誰かがすでに素晴らしいガイドを書いており、私の(徹底的なように見える)グーグルはそれを上回っていないかもしれませんが、私は一生懸命に得る方法を理解できませんpythonリズムボックスのコンソールでdo何でも!
プラグインメニューから有効にし、[ツール]-> [Pythonコンソール]を使用して開きます。
印刷する
You can access the main window through the 'Shell' variable :
<rb.Shell object at 0xa6cdd24 (RBShell at 0xa14e000)>
>>>
しかし、プロンプトで入力するものは何でもnothing! help
、exit()
、print "hello world"
を試しましたが、何もしません!
もちろん、これらはすべて通常のpythonコンソールで機能します。悪魔がここにどんな違いがあるのか、私にはわかりません! Enterキーを押す以外の操作を行う必要がありますか?
なんてこった、問題が何であるかがわかりました(2.5年後)。何らかの理由で、「入力」キーは、numlockがオンかオフかに応じて2つの異なるキーイベントにマッピングされます。 numlockがオンの場合、KP_ENTER
を返し、numlockがオフの場合、Return
を返します。キーパッドで数字を入力することを好むので、私は常にnumlockをオンにしています。
残念ながら、RhythmboxのpythonコンソールはReturn
のみを認識してコマンドを実行します。KP_ENTER
イベントは改行を入力するだけです...
ただし、簡単な修正方法は、コンソールを使用するときにnumlockをオフにするだけです。私は他のいくつかのアプリケーション(通常はゲーム)でこの問題に遭遇したので、より良い長期的な解決策を検討します(おそらく両方をReturn
にマップすることを強制するかもしれません)...
Rhythmboxプラグイン作成ガイド には、Pythonコンソールで使用してRhythmboxの再生と変更を制御できるコマンドの例がいくつかあります。
再生/一時停止
Shell.props.Shell_player.playpause()
やめる
Shell.props.Shell_player.stop()
次のトラック
Shell.props.Shell_player.do_next()
Playキューに曲を追加する
Shell.add_to_queue("file://awsome_song.ogg")
視覚化を表示する
import gst
goom = gst.element_factory_make ("goom")
sink = gst.element_factory_make ("ximagesink")
colour = gst.element_factory_make ("ffmpegcolorspace")
b = gst.Bin()
b.add (goom, colour, sink)
b.add_pad(gst.GhostPad("sink", goom.get_pad("sink")))
goom.link(colour)
colour.link(sink)
Shell.get_player().props.player.add_tee(b)
他のPythonオブジェクトと同様に、そのオブジェクトでdir()メソッドを使用することで多くのことを知ることができます。これは、開始するのに適した場所になります。
You can access the main window through the 'Shell' variable :
<rb.Shell object at 0x9e9675c (RBShell at 0x987b018)>
>>> dir(rb.Shell)
['__class__', '__cmp__', '__copy__', '__deepcopy__', '__delattr__', '__dict__',
'__doc__', '__format__', '__gdoc__', '__getattribute__', '__gobject_init__',
'__grefcount__', '__gtype__', '__hash__', '__init__', '__module__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'add_to_queue', 'add_uri', 'add_widget', 'append_source',
'chain', 'connect', 'connect_after', 'connect_object', 'connect_object_after',
'disconnect', 'disconnect_by_func', 'do_notify', 'emit', 'emit_stop_by_name',
'freeze_notify', 'get_data', 'get_party_mode', 'get_player',
'get_playlist_manager', 'get_properties', 'get_property',
'get_source_by_entry_type', 'get_ui_manager', 'guess_source_for_uri',
'handler_block', 'handler_block_by_func', 'handler_disconnect',
'handler_is_connected','handler_unblock', 'handler_unblock_by_func', 'load_uri',
'notebook_set_page', 'notify', 'notify_custom', 'present', 'props',
'register_entry_type_for_source', 'remove_from_queue', 'remove_widget',
'set_data', 'set_properties', 'set_property', 'stop_emission', 'thaw_notify',
'toggle_visibility', 'weak_ref']
次に、おそらく「get_player」など、おもしろそうなプロパティをdir()できます。
別の良い場所は、オブジェクトに__doc__属性が表示されている場合です。
>>> print rb.Shell.__doc__
Object RBShell
Signals from RBShell:
visibility-changed (gboolean)
visibility-changing (gboolean, gboolean) -> gboolean
create-song-info (RBSongInfo, gboolean)
removable-media-scan-finished ()
notify-playing-entry (gboolean)
notify-custom (guint, gchararray, gchararray, GdkPixbuf, gboolean)
Properties from RBShell:
no-registration -> gboolean: no-registration
Whether or not to register
no-update -> gboolean: no-update
Whether or not to update the library
dry-run -> gboolean: dry-run
Whether or not this is a dry run
rhythmdb-file -> gchararray: rhythmdb-file
The RhythmDB file to use
playlists-file -> gchararray: playlists-file
The playlists file to use
selected-source -> RBSource: selected-source
Source which is currently selected
db -> RhythmDB: RhythmDB
RhythmDB object
ui-manager -> GtkUIManager: GtkUIManager
GtkUIManager object
clipboard -> RBShellClipboard: RBShellClipboard
RBShellClipboard object
playlist-manager -> RBPlaylistManager: RBPlaylistManager
RBPlaylistManager object
removable-media-manager -> RBRemovableMediaManager: RBRemovableMediaManager
RBRemovableMediaManager object
Shell-player -> RBShellPlayer: RBShellPlayer
RBShellPlayer object
window -> GtkWindow: GtkWindow
GtkWindow object
prefs -> RBShellPreferences: RBShellPreferences
RBShellPreferences object
queue-source -> RBPlayQueueSource: queue-source
Queue source
library-source -> RBLibrarySource: library-source
Library source
sourcelist-model -> RBSourceListModel: sourcelist-model
RBSourcelistModel
sourcelist -> RBSourceList: sourcelist
RBSourcelist
source-header -> RBSourceHeader: source header widget
RBSourceHeader
visibility -> gboolean: visibility
Current window visibility
Signals from GObject:
notify (GParam)