wave_import.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:Bigglesworth 作者: MaurizioB 项目源码 文件源码
def setMonoWave(self, stream):
        sampwidth = stream.getsampwidth()
        delta = 2**(8*sampwidth)
        frames = stream.getnframes()
        ratio = frames / 255
        data = stream.readframes(float('inf'))
        wavepath = QtGui.QPainterPath()
        try:
            for frame_set in xrange(256):
                frame_min = frame_max = 0
                for frame in xrange(ratio):
                    try:
                        value = audioop.getsample(data, sampwidth, frame + frame_set * ratio)
                        frame_min = min(frame_min, value)
                        frame_max = max(frame_max, value)
                    except:
                        break
                wavepath.moveTo(frame_set, delta - frame_min)
                wavepath.lineTo(frame_set, delta - frame_max)
        except:
            pass
        self.wavepath = self.scene.addPath(wavepath)
        self.wavepath.setPen(self.pen)
        self.wavepath.setY(delta * .5)
        self.fitInView(0, 0, 256, delta)
        self.centerOn(self.wavepath)
        self.setBackgroundBrush(QtCore.Qt.white)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号