Add duration to scanner data
This commit is contained in:
parent
d6516915e5
commit
79887c1988
@ -71,6 +71,7 @@ class Scanner(object):
|
||||
data = message.parse_tag()
|
||||
data = dict([(k, data[k]) for k in data.keys()])
|
||||
data['uri'] = self.uribin.get_property('uri')
|
||||
data['duration'] = self.get_duration()
|
||||
self.data_callback(data)
|
||||
self.next_uri()
|
||||
|
||||
@ -81,6 +82,13 @@ class Scanner(object):
|
||||
self.error_callback(uri, errors)
|
||||
self.next_uri()
|
||||
|
||||
def get_duration(self):
|
||||
try:
|
||||
return self.pipe.query_duration(
|
||||
gst.FORMAT_TIME, None)[0] // gst.MSECOND
|
||||
except gst.QueryError:
|
||||
return None
|
||||
|
||||
def next_uri(self):
|
||||
if not self.uris:
|
||||
return self.stop()
|
||||
|
||||
@ -73,6 +73,10 @@ class ScannerTest(unittest.TestCase):
|
||||
self.check('scanner/simple/song1.mp3', 'uri', 'file://'
|
||||
+ data_folder('scanner/simple/song1.mp3'))
|
||||
|
||||
def test_duration_is_set(self):
|
||||
self.scan('scanner/simple')
|
||||
self.check('scanner/simple/song1.mp3', 'duration', 4680)
|
||||
|
||||
def test_artist_is_set(self):
|
||||
self.scan('scanner/simple')
|
||||
self.check('scanner/simple/song1.mp3', 'artist', 'name')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user