CAN HEARZ IT!!!!

This commit is contained in:
Raoul Snyman 2011-08-30 22:29:29 +02:00
parent 8b8b4fbf51
commit c41e7c49df
2 changed files with 46 additions and 50 deletions

View File

@ -62,7 +62,10 @@ class MainDisplay(QtGui.QGraphicsView):
self.override = {} self.override = {}
self.retranslateUi() self.retranslateUi()
self.mediaObject = None self.mediaObject = None
self.audioPlayer = None if live:
self.audioPlayer = AudioPlayer(self)
else:
self.audioPlayer = None
self.firstTime = True self.firstTime = True
self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;') self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;')
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool |
@ -102,7 +105,6 @@ class MainDisplay(QtGui.QGraphicsView):
if self.isLive: if self.isLive:
if not self.firstTime: if not self.firstTime:
self.createMediaObject() self.createMediaObject()
self.createAudioPlayer()
log.debug(u'Setup webView') log.debug(u'Setup webView')
self.webView = QtWebKit.QWebView(self) self.webView = QtWebKit.QWebView(self)
self.webView.setGeometry(0, 0, self.webView.setGeometry(0, 0,
@ -178,12 +180,6 @@ class MainDisplay(QtGui.QGraphicsView):
self.videoTick) self.videoTick)
log.debug(u'Creating Phonon objects - Finished for %s', self.isLive) log.debug(u'Creating Phonon objects - Finished for %s', self.isLive)
def createAudioPlayer(self):
self.firstTime = False
log.debug(u'Creating audio player - Start for %s', self.isLive)
self.audioPlayer = AudioPlayer(self)
log.debug(u'Creating Phonon objects - Finished for %s', self.isLive)
def text(self, slide): def text(self, slide):
""" """
Add the slide text from slideController Add the slide text from slideController
@ -595,40 +591,22 @@ class AudioPlayer(QtCore.QObject):
""" """
log.debug(u'AudioPlayer Initialisation started') log.debug(u'AudioPlayer Initialisation started')
QtCore.QObject.__init__(self, parent) QtCore.QObject.__init__(self, parent)
self.currentIndex = 0 self.currentIndex = -1
self.message = None
self.playlist = [] self.playlist = []
self.mediaObject = Phonon.MediaObject() self.mediaObject = Phonon.MediaObject()
self.audioObject = Phonon.AudioOutput(Phonon.VideoCategory) self.audioObject = Phonon.AudioOutput(Phonon.VideoCategory)
Phonon.createPath(self.mediaObject, self.audioObject) Phonon.createPath(self.mediaObject, self.audioObject)
def setup(self):
"""
Sets up the Audio Player for use
"""
log.debug(u'AudioPlayer Setup')
QtCore.QObject.connect(self.mediaObject, QtCore.SIGNAL(u'finished()'),
self.onFinished)
QtCore.QObject.connect(self.mediaObject, QtCore.QObject.connect(self.mediaObject,
QtCore.SIGNAL(u'tick(qint64)'), self.onTick) QtCore.SIGNAL(u'aboutToFinish()'), self.onAboutToFinish)
QtCore.QObject.connect(self.mediaObject,
QtCore.SIGNAL(u'aboutToFinish()'), self.onAboutToFinish())
def close(self): def __del__(self):
""" """
Shutting down so clean up connections Shutting down so clean up connections
""" """
self.onMediaStop() self.stop()
for path in self.mediaObject.outputPaths(): for path in self.mediaObject.outputPaths():
path.disconnect() path.disconnect()
QtCore.QObject.__del__(self)
def addToPlaylist(self, filename):
self.playlist.append(Phonon.MediaSource(filename))
def onFinished(self):
"""
Slot to capture when the currently playing media is finished.
"""
def onAboutToFinish(self): def onAboutToFinish(self):
""" """
@ -639,42 +617,54 @@ class AudioPlayer(QtCore.QObject):
if len(self.playlist) > self.currentIndex: if len(self.playlist) > self.currentIndex:
self.mediaObject.enqueue(self.playlist[self.currentIndex]) self.mediaObject.enqueue(self.playlist[self.currentIndex])
def onMediaQueue(self, message): def reset(self):
""" """
Set up a video to play from the serviceitem. Reset the audio player, clearing the playlist and the queue.
""" """
log.debug(u'AudioPlayer Queue new media message %s' % message) self.currentIndex = -1
mfile = os.path.join(message[0].get_frame_path(), self.playlist = []
message[0].get_frame_title()) self.stop()
self.mediaObject.setCurrentSource(Phonon.MediaSource(mfile)) self.clearQueue()
self.onMediaPlay()
def onMediaPlay(self): def play(self):
""" """
We want to play the play so start it We want to play the file so start it
""" """
log.debug(u'AudioPlayer _play called') log.debug(u'AudioPlayer.play() called')
if self.currentIndex == -1:
self.currentIndex += 1
self.mediaObject.enqueue(self.playlist[self.currentIndex])
self.mediaObject.play() self.mediaObject.play()
def onMediaPause(self): def pause(self):
""" """
Pause the Audio Pause the Audio
""" """
log.debug(u'AudioPlayer Media paused by user') log.debug(u'AudioPlayer.pause() called')
self.mediaObject.pause() self.mediaObject.pause()
def onMediaStop(self): def stop(self):
""" """
Stop the Audio and clean up Stop the Audio and clean up
""" """
log.debug(u'AudioPlayer Media stopped by user') log.debug(u'AudioPlayer.stop() called')
self.message = None
self.mediaObject.stop() self.mediaObject.stop()
self.onMediaFinish()
def onMediaFinish(self): def addToPlaylist(self, filenames):
"""
Add another file to the playlist.
``filename``
The file to add to the playlist.
"""
if not isinstance(filenames, list):
filenames = [filenames]
for filename in filenames:
self.playlist.append(Phonon.MediaSource(filename))
def clearQueue(self):
""" """
Clean up the Object queue Clean up the Object queue
""" """
log.debug(u'AudioPlayer Reached end of media playlist') log.debug(u'AudioPlayer.clearQueue() called')
self.mediaObject.clearQueue() self.mediaObject.clearQueue()

View File

@ -512,7 +512,7 @@ class SlideController(QtGui.QWidget):
self.playSlidesOnce.setChecked(False) self.playSlidesOnce.setChecked(False)
self.playSlidesOnce.setIcon(build_icon(u':/media/media_time.png')) self.playSlidesOnce.setIcon(build_icon(u':/media/media_time.png'))
self.playSlidesLoop.setChecked(False) self.playSlidesLoop.setChecked(False)
self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png')) self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png'))
if item.is_text(): if item.is_text():
if QtCore.QSettings().value( if QtCore.QSettings().value(
self.parent().songsSettingsSection + u'/display songbar', self.parent().songsSettingsSection + u'/display songbar',
@ -618,6 +618,12 @@ class SlideController(QtGui.QWidget):
self.previewListWidget.setColumnWidth(0, width) self.previewListWidget.setColumnWidth(0, width)
if self.isLive: if self.isLive:
self.songMenu.menu().clear() self.songMenu.menu().clear()
self.display.audioPlayer.reset()
if self.serviceItem.is_capable(ItemCapabilities.HasBackgroundAudio):
log.debug(u'Starting to play...')
self.display.audioPlayer.addToPlaylist(
self.serviceItem.background_audio)
self.display.audioPlayer.play()
row = 0 row = 0
text = [] text = []
for framenumber, frame in enumerate(self.serviceItem.get_frames()): for framenumber, frame in enumerate(self.serviceItem.get_frames()):