Merge branch 'load_sound_on_request'

This commit is contained in:
alessandro90
2018-09-29 13:10:50 +02:00
2 changed files with 32 additions and 8 deletions

View File

@@ -3,6 +3,7 @@ import sys
from pydub import AudioSegment from pydub import AudioSegment
from pygame import mixer from pygame import mixer
from PyQt5.QtCore import QTimer, QTimer from PyQt5.QtCore import QTimer, QTimer
import qtawesome as qta
class AudioPlayer(object): class AudioPlayer(object):
@@ -17,6 +18,7 @@ class AudioPlayer(object):
def __init__(self, play, pause, stop, volume, audio_progress): def __init__(self, play, pause, stop, volume, audio_progress):
self.__paused = False self.__paused = False
self.__first_call = True
self.__play = play self.__play = play
self.__pause = pause self.__pause = pause
self.__stop = stop self.__stop = stop
@@ -25,13 +27,22 @@ class AudioPlayer(object):
self.__audio_file = None self.__audio_file = None
self.__timer = QTimer() self.__timer = QTimer()
self.__timer.timeout.connect(self.__update_bar) self.__timer.timeout.connect(self.__update_bar)
self.__load_timer = QTimer()
self.__load_timer.timeout.connect(self.__set_audio_player)
self.__play.clicked.connect(self.__play_audio) self.__play.clicked.connect(self.__play_audio)
self.__pause.clicked.connect(self.__pause_audio) self.__pause.clicked.connect(self.__pause_audio)
self.__stop.clicked.connect(self.__stop_audio) self.__stop.clicked.connect(self.__stop_audio)
self.__volume.valueChanged.connect(self.__set_volume) self.__volume.valueChanged.connect(self.__set_volume)
self.__play.setIcon(qta.icon('fa5.play-circle',
color = "#4facf1",
color_disabled = '#7a7a7a'))
self.__play.setIconSize(self.__play.size())
self.__pause.setIcon(qta.icon('fa5.pause-circle',
color = "#4facf1",
color_disabled = '#7a7a7a'))
self.__pause.setIconSize(self.__pause.size())
self.__stop.setIcon(qta.icon('fa5.stop-circle',
color = "#4facf1",
color_disabled = '#7a7a7a'))
self.__stop.setIconSize(self.__stop.size())
def __set_volume(self): def __set_volume(self):
if mixer.get_init(): if mixer.get_init():
@@ -62,6 +73,7 @@ class AudioPlayer(object):
) )
def set_audio_player(self, fname = ""): def set_audio_player(self, fname = ""):
<<<<<<< HEAD
if self.__load_timer.isActive(): if self.__load_timer.isActive():
self.__load_timer.stop() self.__load_timer.stop()
self.fname = fname self.fname = fname
@@ -69,18 +81,28 @@ class AudioPlayer(object):
def __set_audio_player(self): def __set_audio_player(self):
self.__load_timer.stop() self.__load_timer.stop()
=======
self.__first_call = True
>>>>>>> load_sound_on_request
self.__reset_audio_widget() self.__reset_audio_widget()
full_name = os.path.join('Data', 'Audio_wav', self.fname + '.wav') full_name = os.path.join('Data', 'Audio_wav', fname + '.wav')
if os.path.exists(full_name): if os.path.exists(full_name):
<<<<<<< HEAD
mixer.init(frequency = AudioSegment.from_wav(full_name).frame_rate) mixer.init(frequency = AudioSegment.from_wav(full_name).frame_rate)
=======
>>>>>>> load_sound_on_request
self.__play.setEnabled(True) self.__play.setEnabled(True)
self.__audio_file = full_name self.__audio_file = full_name
self.__set_max_progress_bar()
mixer.music.load(full_name)
self.__volume.setValue(50)
def __play_audio(self): def __play_audio(self):
if not self.__paused: if not self.__paused:
if self.__first_call:
self.__first_call = False
mixer.init(frequency = AudioSegment.from_wav(self.__audio_file).frame_rate,
buffer = 2048)
mixer.music.load(self.__audio_file)
self.__set_volume()
self.__set_max_progress_bar()
mixer.music.play() mixer.music.play()
else: else:
mixer.music.unpause() mixer.music.unpause()

View File

@@ -8,7 +8,6 @@ from PyQt5.QtWidgets import (QMainWindow,
from PyQt5.QtGui import QPixmap from PyQt5.QtGui import QPixmap
from PyQt5 import uic from PyQt5 import uic
from PyQt5.QtCore import QFileInfo, QSize from PyQt5.QtCore import QFileInfo, QSize
import qtawesome as qta
from audio_player import AudioPlayer from audio_player import AudioPlayer
@@ -28,6 +27,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.search_bar.textChanged.connect(self.display_signals) self.search_bar.textChanged.connect(self.display_signals)
self.result_list.itemSelectionChanged.connect(self.display_specs) self.result_list.itemSelectionChanged.connect(self.display_specs)
self.result_list.currentItemChanged.connect(self.display_specs) self.result_list.currentItemChanged.connect(self.display_specs)
<<<<<<< HEAD
self.play.setIcon(qta.icon('fa5.play-circle', self.play.setIcon(qta.icon('fa5.play-circle',
color = "#4facf1", color = "#4facf1",
color_disabled = '#7a7a7a')) color_disabled = '#7a7a7a'))
@@ -40,6 +40,8 @@ class MyApp(QMainWindow, Ui_MainWindow):
color = "#4facf1", color = "#4facf1",
color_disabled = '#7a7a7a')) color_disabled = '#7a7a7a'))
self.stop.setIconSize(self.stop.size()) self.stop.setIconSize(self.stop.size())
=======
>>>>>>> load_sound_on_request
self.audio_widget = AudioPlayer(self.play, self.audio_widget = AudioPlayer(self.play,
self.pause, self.pause,
self.stop, self.stop,