diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/audioplayer.py | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/util/audioplayer.py b/util/audioplayer.py index 911fa42..dacf51f 100644 --- a/util/audioplayer.py +++ b/util/audioplayer.py @@ -23,19 +23,19 @@ from util.decorators import Property class AudioPlayer(object): - + def __init__(self): pass - - + + @Property def uri(): def get(self): return self.__uri def set(self, value): if value is None or not os.path.exists(value): - logging.error('AudioPlayer- Invalid URI: %r', value) - return - self.__uri = value + logging.error('AudioPlayer - Invalid URI: %r', value) + return + self.__uri = value size = os.path.getsize(self.__uri) self.pipeline.get_by_name('source').set_property('location', self.__uri) self.pipeline.get_by_name('source').set_property('mmapsize', size) @@ -45,28 +45,26 @@ class AudioPlayer(object): def raw(): def get(self): if self.uri is None: - logging.error('AudioPlayer - No data') - return None + logging.error('AudioPlayer - No data') + return None f = open(self.uri, 'r') raw = f.read() f.close() return raw def set(self, value): - temp = Globals.temporary_filename() - f = open(temp, 'w') + name = Globals.temporary_filename() + f = open(name, 'w') f.write(value) f.close() - #self.source.set_property('location', temp) - #self.source.set_property('mmapsize', len(value)) - self.uri = temp - logging.debug('AudioPlayer - set_raw wrote %d bytes to %s', len(value), temp) + self.uri = name + logging.debug('AudioPlayer - set_raw wrote %d bytes to %s', len(value), name) @Property def pipeline(): def get(self): if self.__pipeline is None: - self.__pipeline = self.__build_pipeline() + self.__pipeline = self.__build_pipeline() return self.__pipeline @@ -80,11 +78,11 @@ class AudioPlayer(object): def __build_pipeline(self): # pipeline pipeline = gst.Pipeline('pipeline') - + # add source source = gst.element_factory_make('filesrc', 'source') pipeline.add(source) - + # add decoder decoder = gst.element_factory_make('decodebin', 'decoder') decoder.connect("new-decoded-pad", self.__new_decoded_pad) #, converter) @@ -94,27 +92,27 @@ class AudioPlayer(object): # add converter converter = gst.element_factory_make("audioconvert", "converter") pipeline.add(converter) - + # add output sink = gst.element_factory_make('autoaudiosink', 'sink') pipeline.add(sink) converter.link(sink) - + bus = pipeline.get_bus() bus.add_signal_watch() bus.connect('message', self.__on_audio_message) - + return pipeline - - + + # callbacks ################################################################## - + def __new_decoded_pad(self, dbin, pad, islast): #, converter) converter = self.pipeline.get_by_name('converter') # TODO - pass by arg pad.link(converter.get_pad("sink")) - - + + def __on_audio_message(self, bus, message): t = message.type #logging.debug('message: %r' % t) |