Raspberry Pi上的Python:结果只是整数

时间:2016-03-15 02:52:15

标签: python-2.7 raspberry-pi alsa

我在Raspberry Pi上使用以下python代码来收集音频信号并输出​​音量。我无法理解为什么我的输出只是整数。

#!/usr/bin/env python

import alsaaudio as aa
import audioop

# Set up audio
data_in = aa.PCM(aa.PCM_CAPTURE, aa.PCM_NONBLOCK, 'hw:1')
data_in.setchannels(2)
data_in.setrate(44100)
data_in.setformat(aa.PCM_FORMAT_S16_LE)

data_in.setperiodsize(256)

while True:
   # Read data from device
   l,data = data_in.read()
   if l:
      # catch frame error
      try:
         max_vol=audioop.max(data,2)
         scaled_vol = max_vol/4680      
         if scaled_vol==0:
            print "vol 0"
         else:
            print scaled_vol

      except audioop.error, e:
         if e.message !="not a whole number of frames":
            raise e

另外,我不理解这一行的语法:

l,data = data_in.read()

1 个答案:

答案 0 :(得分:0)

它可能在一个字节中读取。这一行l,data = data_in.read()读入一个元组(由ldata组成)。对这些变量运行type()内置函数,看看你有什么用。

否则,请查看位于herepyalsaaudio包文档中的 PCM术语和概念 的文档。