12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- from PyQt5.QtMultimedia import QMediaPlaylist, QMediaContent, QMediaPlayer
- from PyQt5.QtCore import Qt, QUrl
- import soundfile as sf
- from collections import deque
- import requests
- import json
- from config.config import Config
- SERVER_URL = Config.CLIENT_CONFIG["server_url"]
- INFERENCE_STR = Config.CLIENT_CONFIG["inference_path"]
- class Player:
- def __init__(self, parent):
- self.parent = parent
- self.player = QMediaPlayer()
- self.player.currentMediaChanged.connect(self.mediaChanged)
- self.player.durationChanged.connect(self.durationChanged)
- self.player.positionChanged.connect(self.positionChanged)
- self.playlist = QMediaPlaylist()
- self.playlist_data = []
- self.sound_prev_idx = 0
- def play(self, playlists, startRow=0, option=QMediaPlaylist.Sequential ):
- print(f'in player player.state = {self.player.state()}, {QMediaPlayer.PausedState}')
- if self.player.state() == QMediaPlayer.PausedState:
- self.player.play()
- else:
- self.createPlaylist(playlists, startRow, option)
- self.playlist.setCurrentIndex(startRow)
- self.player.play()
-
- def stop(self):
- self.player.stop()
-
- def createPlaylist(self, playlists, startRow=0, option=QMediaPlaylist.Sequential):
- self.playlist.clear()
- for path in playlists:
- url = QUrl.fromLocalFile(path)
- self.playlist.addMedia(QMediaContent(url))
- self.player.setPlaylist(self.playlist)
-
- self.playlist.setPlaybackMode(option)
- def upateVolume(self, vol):
- self.player.setVolume(vol)
-
- def mediaChanged(self, e):
- self.sound_prev_idx = 0
- self.parent.updateMediaChanged(self.playlist.currentIndex())
-
- def durationChanged(self, msec):
- if msec>0:
- self.parent.updateDurationChanged(self.playlist.currentIndex(), msec)
-
- def positionChanged(self, msec):
- if msec>0:
- self.parent.updatePositionChanged(self.playlist.currentIndex(), msec)
|