const getMetadata = async () => { const properties = await getProperties() return properties.Get( 'org.mpris.MediaPlayer2.Player', 'Metadata' ) }
const metadataChangeListener = async (callback) => { const properties = await getProperties() properties.on('PropertiesChanged', (_, changed) => { clearTimeout(metadataChangeTimer) metadataChangeTimer = setTimeout(() => { let metadata = changed['Metadata'] let trackID = getMetadataTrackID(metadata) let artist = getMetadataArtist(metadata) let title = getMetadataTitle(metadata) callback(null, { trackID, artist, title }) }, 1000) }) }