嘗試將下列內容轉換爲def,但是做一些可能不被允許的事情......我做錯了什麼,怎麼能做得更好?python def(AttributeError:'str'object has no attribute'read')
# Same for both
import alsaaudio
l_input = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card='default')
r_input = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card='default')
#
l, data = l_input.read()
if l > 0:
# transform data to logarithmic scale
lin_vu = (math.log(float(max(audioop.max(data, 2),1)))-log_lo)/(log_hi-log_lo)
# Calculate value
lin_vu = (min(max(int(lin_vu*15),0),15))
l, data = r_input.read()
if l > 0:
# transform data to logarithmic scale
rin_vu = (math.log(float(max(audioop.max(data, 2),1)))-log_lo)/(log_hi-log_lo)
# Calculate value
rin_vu = (min(max(int(rin_vu*15),0),15))
我希望當我需要讀4個值,而不僅僅是兩家上市做這樣的事情:
def readvu(src):
l, data = src.read()
if l > 0:
# transform data to logarithmic scale
l_vu = (math.log(float(max(audioop.max(data, 2),1)))-log_lo)/(log_hi-log_lo)
# Calculate value
l_vu = (min(max(int(l_vu*15),0),15))
lin_vu = readvu('l_input');
rin_vu = readvu('r_input');
但是,這產生了提到的錯誤...
請提供堆棧跟蹤也.. – mshsayem
也很明顯。您將'readvu'的參數作爲字符串調用'readvu('l_input')'。後來,在'readvu'裏面,你試圖對一個字符串('src'現在是一個字符串)調用'read'! – mshsayem