我制作了一个棋盘游戏程序。我的问题是一个函数,因此某些字段可以向后或向前传输播放器。显然,我做的事情不起作用。
from scipy.io import wavfile
TheFile = 'example24bit1channelFile.wav'
[fs, x] = wavfile.read(TheFile)
# convert the loaded data into a 24bit signal
nx = len(x)
ny = nx/3*4 # four 3-byte samples are contained in three int32 words
y = np.zeros((ny,), dtype=np.int32) # initialise array
# build the data left aligned in order to keep the sign bit operational.
# result will be factor 256 too high
y[0:ny:4] = ((x[0:nx:3] & 0x000000FF) << 8) | \
((x[0:nx:3] & 0x0000FF00) << 8) | ((x[0:nx:3] & 0x00FF0000) << 8)
y[1:ny:4] = ((x[0:nx:3] & 0xFF000000) >> 16) | \
((x[1:nx:3] & 0x000000FF) << 16) | ((x[1:nx:3] & 0x0000FF00) << 16)
y[2:ny:4] = ((x[1:nx:3] & 0x00FF0000) >> 8) | \
((x[1:nx:3] & 0xFF000000) >> 8) | ((x[2:nx:3] & 0x000000FF) << 24)
y[3:ny:4] = (x[2:nx:3] & 0x0000FF00) | \
(x[2:nx:3] & 0x00FF0000) | (x[2:nx:3] & 0xFF000000)
y = y/256 # correct for building 24 bit data left aligned in 32bit words
不知何故,我必须重复输入最高分的过程。
答案 0 :(得分:0)
我不会直接回答“问题”,因为没有“问题”需要回答。正如其他人在评论中指出的那样,您需要更具体,并提供对问题的正确描述。但我仍然可以提供以下反馈:
在我看来,你不太了解数组及其索引。例如,此行应该为您提供分段错误错误,或者至少与未知值进行比较:
if(numbers[10] == nonumbers[3])
这是因为您的nonumbers
数组有3个元素,因此它们应该以{{1}},nonumbers[0]
或nonumbers[1]
(或者通常为{{{ 3}}将其放在评论中,从nonumbers[2]
到nonumbers[0]
)。 nonumbers[array_lenght-1]
将访问内存中未定义的位置。你的问题可能与此有关。
请注意,我和任何人都不会审核您的整个代码 找到错误。如上所述,请更具体。
另外,你确定你摆脱了所有的编译器错误吗?因为代码的下游还有一个未初始化的变量nonumbers[3]
。为了确保你摆脱所有可能讨厌的错误,打开终端(我假设你在Linux上)并使用以下命令编译你的程序:
i
然后用:
运行它gcc *.c -Wall -Wextra -o program