DBus metadata
에서 Lua 스크립트로 nuvolaplayer
을 읽으려고합니다. 예상대로 (트랙) 제목 및 앨범 필드는 표시 할 수 있지만 작가의 데이터가 이상하게 나타납니다루아 스크립트의 DBus에서 아티스트 메타 데이터 읽기 - 이상한 결과
"Sly & Robbie"
이
"lgi.rec 0x7f9ee8005c90:GLib.Variant"
대신 예상된다
lgi.rec 0x7f9ee8005c90:GLib.Variant Underwater Dub Dictionary
.
d-feet
을 사용하여 값을 보면 xesam:artist
필드가 []로 둘러싸인 다른 필드와 다릅니다.
local lgi = require 'lgi'
local Gio = lgi.require 'Gio'
local core = require 'lgi.core'
local GLib = lgi.require 'GLib'
local type,unpack = type,unpack
local bus = Gio.bus_get_sync(Gio.BusType.SESSION)
local ret,err = bus:call(
"org.mpris.MediaPlayer2.nuvolaplayer",
--"org.gnome.Rhythmbox3",
"/org/mpris/MediaPlayer2",
"org.freedesktop.DBus.Properties",
"GetAll",
GLib.Variant.new_tuple(
{
GLib.Variant("s","org.mpris.MediaPlayer2.Player")
}, 1),
nil,
Gio.DBusConnectionFlags.NONE,
-1, -- Timeout
nil, -- Cancellable
function(conn, res)
local ret, err = bus:call_finish(res)
print("here",err)
local returnValue1, returnValue2 = unpack(ret.value)
if not err then
print("META", returnValue1.Metadata["xesam:artist"],
returnValue1.Metadata["xesam:album"],
returnValue1.Metadata["xesam:title"])
end
end
)
local main_loop = GLib.MainLoop()
main_loop:run()
d-feet 출력과 메서드의 서명을 게시 할 수 있습니까? –
어떤 이유로 d-feet은 오늘 이상하게 행동하고 있습니다. 이제 "Dict of {String, Variant} Metadata"항목을 두 번 클릭하면 "부울 CanSeek"항목으로 바뀝니다. 어제 그 일을하지 않았습니다. 그래서 나는 지금 d-feet 출력을 얻는 방법을 확신하지 못합니다 .... – emacsomancer