You've already forked RadioPlayer
mirror of
https://github.com/radio95-rnt/RadioPlayer.git
synced 2026-02-27 06:03:52 +01:00
faster?
This commit is contained in:
@@ -34,20 +34,23 @@ class ProcessManager(Skeleton_ProcessManager):
|
|||||||
return result
|
return result
|
||||||
return None
|
return None
|
||||||
def play(self, track: Track, fade_time: int=5) -> Process:
|
def play(self, track: Track, fade_time: int=5) -> Process:
|
||||||
cmd = ['ffplay', '-nodisp', '-hide_banner', '-autoexit', '-loglevel', 'quiet']
|
cmd = ['ffmpeg', '-hide_banner', '-loglevel', 'quiet']
|
||||||
assert track.path.exists()
|
assert track.path.exists()
|
||||||
|
|
||||||
duration = self._get_audio_duration(track.path.absolute())
|
duration = self._get_audio_duration(track.path.absolute())
|
||||||
if not duration: raise Exception("Failed to get file duration for", track.path)
|
if not duration: raise Exception("Failed to get file duration for", track.path)
|
||||||
if track.offset >= duration: track.offset = max(duration - 0.1, 0)
|
if track.offset >= duration: track.offset = max(duration - 0.1, 0)
|
||||||
if track.offset > 0: cmd.extend(['-ss', str(track.offset)])
|
|
||||||
|
if track.offset > 0:
|
||||||
|
cmd.extend(['-ss', str(track.offset)])
|
||||||
|
cmd.extend(['-i', str(track.path.absolute())])
|
||||||
|
|
||||||
filters = []
|
filters = []
|
||||||
if track.fade_in: filters.append(f"afade=t=in:st=0:d={fade_time}")
|
if track.fade_in: filters.append(f"afade=t=in:st=0:d={fade_time}")
|
||||||
if track.fade_out: filters.append(f"afade=t=out:st={duration - fade_time - track.offset}:d={fade_time}")
|
if track.fade_out: filters.append(f"afade=t=out:st={duration - fade_time - track.offset}:d={fade_time}")
|
||||||
if filters: cmd.extend(['-af', ",".join(filters)])
|
if filters: cmd.extend(['-af', ",".join(filters)])
|
||||||
|
|
||||||
cmd.append(str(track.path.absolute()))
|
cmd.extend(['-f', 'pulse', 'default'])
|
||||||
|
|
||||||
pr = Process(Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, start_new_session=True), track.path.name, time.monotonic(), duration - track.offset)
|
pr = Process(Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, start_new_session=True), track.path.name, time.monotonic(), duration - track.offset)
|
||||||
with self.lock: self.processes.append(pr)
|
with self.lock: self.processes.append(pr)
|
||||||
|
|||||||
Reference in New Issue
Block a user