forked from openlp/openlp
CAN HEARZ IT!!!!
This commit is contained in:
parent
8b8b4fbf51
commit
c41e7c49df
@ -62,6 +62,9 @@ class MainDisplay(QtGui.QGraphicsView):
|
|||||||
self.override = {}
|
self.override = {}
|
||||||
self.retranslateUi()
|
self.retranslateUi()
|
||||||
self.mediaObject = None
|
self.mediaObject = None
|
||||||
|
if live:
|
||||||
|
self.audioPlayer = AudioPlayer(self)
|
||||||
|
else:
|
||||||
self.audioPlayer = None
|
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;')
|
||||||
@ -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()
|
||||||
|
@ -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()):
|
||||||
|
Loading…
Reference in New Issue
Block a user