我不太確定這裏發生了什麼。當我的網絡攝像頭中最黑暗的部分位於顯示器的特定位置時,我試圖讓它播放聲音。當我運行它時,我得到這個錯誤Python TypeError:'NoneType'對象沒有屬性'__getitem__'
文件「/home/phur/Documents/052617/052617.py」,第42行,鋼琴 如果par [100,200] == surface.map_rgb((0, 0,0)): 類型錯誤: 'NoneType' 對象有沒有屬性 '的GetItem' (0,0)
這裏是我的代碼:
import pygame
import pygame.camera
from pygame.locals import *
import time
import random
import Image
pygame.init()
pygame.camera.init()
size = (640, 480)
md = pygame.display.set_mode(size, 0)
pygame.display.set_caption("Piano")
def piano():
stop_playing = False
camera = pygame.camera.Camera('/dev/video0', size)
camera.start()
while not stop_playing:
captured = camera.get_image(md)
md.blit(captured, (0, 0))
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
stop_playing = True
mp = pygame.mouse.get_pos()
par = pygame.PixelArray.surface.__init__()
print mp
for x in range(0, 213):
for y in range(0, 240):
if par[x, y] == pygame.surface.map_rgb((0, 0, 0)):
pygame.mixer.music.load("C1.wav")
pygame.mixer.music.play()
time.sleep(1)
for x in range(214, 426):
for y in range(0, 240):
if par[x, y] == pygame.surface.map_rgb((0, 0, 0)):
pygame.mixer.music.load("D1.wav")
pygame.mixer.music.play()
time.sleep(1)
for x in range(427, 640):
for y in range(0, 240):
if par[x, y] == pygame.surface.map_rgb((0, 0, 0)):
pygame.mixer.music.load("E1.wav")
pygame.mixer.music.play()
time.sleep(1)
for x in range(0, 320):
for y in range(241, 480):
if par[x, y] == pygame.surface.map_rgb((0, 0, 0)):
pygame.mixer.music.load("F1.wav")
pygame.mixer.music.play()
time.sleep(1)
for x in range(321, 640):
for y in range(241, 480):
if par[x, y] == pygame.surface.map_rgb((0, 0, 0)):
pygame.mixer.music.load("G1.wav")
pygame.mixer.music.play()
time.sleep(1)
piano()
quit()
歡迎來到Stackoverflow!當在代碼中詢問有關錯誤的問題時,您應該始終創建一個[mcve]。通過這樣做,您可以使問題更易於理解,更容易給出明智的答案,對未來的讀者更有價值,並且在大多數情況下,您甚至可以在此過程中自己發現錯誤。要創建[mcve],首先需要刪除多餘的代碼。錯誤是在第一個for循環中,所以剩餘的3個循環對於這個問題是不必要的。像設置標題和打印鼠標位置這樣的小東西也可以被刪除。完整的和可驗證的部分是好的 –
只是爲了演示; [這裏](https://hastebin.com/upociwikus.py)就是你如何儘量減少代碼的一個例子(我還提供了一些額外的有用評論,但它們不應該成爲實際問題)。 –