Skip to content

Commit

Permalink
Added wav files metadata acquisition
Browse files Browse the repository at this point in the history
  • Loading branch information
goriy committed Jun 23, 2020
1 parent a9bc88e commit 9cccec8
Showing 1 changed file with 30 additions and 8 deletions.
38 changes: 30 additions & 8 deletions ppplay/playback.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import ppplay.vlc
import math
import mutagen
import wave

class playback:
#############################################################################
Expand All @@ -31,25 +32,46 @@ def seconds_to_norm(self, value):
def unload(self):
self.stop()

#############################################################################
def get_file_metadata(self, filename):
self.bitrate = 0
self.length = 10

fi = mutagen.File(filename)
if not (fi is None):
self.bitrate = fi.info.bitrate // 1000
self.length = fi.info.length
#self.bitrate = self.mplay.get_rate()
#self.length = self.mplay.get_length() / 1000.0
else:
f_ext = os.path.splitext(filename)
ext = f_ext[1].lower()
if ext == '.wav':
with wave.open(filename) as wf:
frames = wf.getnframes()
rate = wf.getframerate()
duration = frames / float(rate)
print(frames,rate,duration)
self.length = duration
self.bitrate = (wf.getnchannels() * wf.getsampwidth() * 8 * float(rate)) // 1000

self.length_f = self.seconds_to_norm(self.length)
self.bitrate_s = "%sk" % (self.bitrate)


#############################################################################
def load_file(self, filename):
if not os.path.isfile(filename):
return False
self.filename = filename
self.filetitle = os.path.basename(filename)
fi = mutagen.File(filename)
self.bitrate = fi.info.bitrate // 1024
self.length = fi.info.length

self.get_file_metadata(filename)

self.mplay = ppplay.vlc.MediaPlayer(filename)
self.mplay.play()
self.mplay.set_pause(1)

#self.bitrate = self.mplay.get_rate()
#self.length = self.mplay.get_length() / 1000.0
self.length_f = self.seconds_to_norm(self.length)
self.bitrate_s = "%sk" % (self.bitrate)

if (self.length < 30.0):
self.time_step = 2.0
else:
Expand Down

0 comments on commit 9cccec8

Please sign in to comment.