#python
#python
Вопрос:
def fade_in (snd, fade_length): «‘выполнение звукового затухания для этого волнового файла»‘ new_snd = sound.copy(snd)
for sample in new_snd:
snd_index = sound.get_index(sample)
factor = 0
snd_samp = sound.get_sample(snd, snd_index)
if snd_index <= fade_length:
left = (sound.get_left(snd_samp) * factor)
right = (sound.get_right(snd_samp) * factor)
factor = 0.25
sound.set_values(sample,int(left),int(right))
else:
left = sound.get_left(sample)
right = sound.get_right(sample)
sound.set_values(sample, int(left), int(right))
return new_snd
Комментарии:
1. Это всего лишь блок кода. Вы должны задать вопрос.
2. я пытался написать код для выполнения звука с затуханием в Python, но тогда этот код не работает. в части, если snd_index <= fade_length: left = (sound.get_left(snd_samp) * factor) right = (sound.get_right(snd_samp) * factor) factor = 0.25 sound.set_values(sample, int (слева), int (справа))в этой части я напечатал значения left и right, но все они равны 0, я не понимаю, почему
3. о, на самом деле я понял это, но теперь у меня возникла новая проблема, когда часть snd_index <= fade_length. когда он запускает эту часть, он получает какой-то странный звук, ничего похожего на оригинал, но он вернул эту часть в нормальное состояние
Ответ №1:
left
и right
всегда будет равен нулю, так как вы устанавливаете factor
равным нулю каждый запуск в цикле for. Вы должны объявить factor
вне цикла for:
def fade_in (snd, fade_length):
new_snd = sound.copy(snd)
factor = 0
for sample in new_snd:
snd_index = sound.get_index(sample)
snd_samp = sound.get_sample(snd, snd_index)
if snd_index <= fade_length:
left = (sound.get_left(snd_samp) * factor)
right = (sound.get_right(snd_samp) * factor)
factor = 0.25
sound.set_values(sample,int(left),int(right))
else:
left = sound.get_left(sample)
right = sound.get_right(sample)
sound.set_values(sample, int(left), int(right))
return new_snd