Портирование Python 2–3, сравнение байтов со строкой - PullRequest
0 голосов
/ 03 октября 2018

Я нашел звуковой модуль 'swmixer' , который кажется идеальным для моего проекта.К сожалению, он написан на Python 2, в то время как мой проект на Python 3. Я пытаюсь его портировать, но этот фрагмент кода доставляет мне проблемы.

        data = []
        r = ' '
        while r != '':
            r = wf.readframes(4096)
            data.append(r)

Весь код 'swmixer.py' можно найти здесь , строка 275.

Я считаю, что проблема в том, что r байт и сравнивается со строкой.Что стало проблемой с Python 3. Он застревает в цикле while навсегда, потому что r никогда не будет равным ''.Я перепробовал множество вещей, но не могу понять, как правильно сделать преобразование.

Мой код, пытающийся воспроизвести WAV-файл:

import swmixer
import time

swmixer.init(samplerate=44100, chunksize=1024, stereo=False)
swmixer.start()
snd = swmixer.Sound("hold.wav")
snd.play()
time.sleep(2.0) #don't quit before we hear the sound!

Есть предложения?Спасибо!

...