2015-11-30 4 views
0

Im Работа с pydub, и я использую ffplay. По какой-то причине, когда программа запускается, я получаю эту «ошибку»:ffplay отображает ошибку времени выполнения, но все еще играет файл

/usr/local/lib/python2.7/site-packages/pydub/utils.py:178: 

RuntimeWarning: Couldn't find ffplay or avplay - defaulting to ffplay, but may not work 
    warn("Couldn't find ffplay or avplay - defaulting to ffplay, but may not work", RuntimeWarning) 

Однако он по-прежнему воспроизводит выбранный аудиофайл.

  1. Есть ли способ сделать это предупреждение исчезающим, как это происходит каждый раз, когда я его воспроизвожу?
  2. Если я не могу, я все равно могу настроить это так, чтобы он использовал pyaudio для воспроизведения потока?

ответ

0

Это предупреждение (а не ошибка), потому что возможно, что все в порядке, но это не гарантировано.

Предупреждение отображается при импорте pydub.playback (что в ретроспективе было не лучшим местом для него).

Тем не менее, вы, вероятно, захотите использовать pyaudio напрямую для всех, кроме самых простых случаев. Pydub pyaudio playback code обеспечивает отправную точку, если хотите (приведено ниже для потомков):

def play_with_pyaudio(seg): 
    """ 
    seg should be a pydub.AudioSegment instance 
    """ 
    import pyaudio 

    p = pyaudio.PyAudio() 
    stream = p.open(format=p.get_format_from_width(seg.sample_width), 
        channels=seg.channels, 
        rate=seg.frame_rate, 
        output=True) 

    # break audio into half-second chunks (to allows keyboard interrupts) 
    for chunk in make_chunks(seg, 500): 
     stream.write(chunk._data) 

    stream.stop_stream() 
    stream.close() 

    p.terminate()