Pergunta

Eu tenho um arquivo wave efeito 10 segundo som. O que eu gostaria de fazer é tomar esse arquivo e repeti-lo n número de vezes e, em seguida, salvar o arquivo WAV mais tempo para o disco. Dessa forma eu posso criar um efeito de fundo muito mais tempo, em vez de auto-repeat no media player que é um pouco gaguejou entre as repetições. Eu estou tentando fazer isso em C #.

Foi útil?

Solução

Se você só precisa fazer isso com um pequeno número de arquivos, assim como você pode fazê-lo à mão com Audacity .

Outras dicas

Isso é razoavelmente fácil de fazer, dado o formato WAV arquivo - assumindo que é áudio sem compressão (a maioria dos arquivos WAV são - ou, pelo menos, eles estavam última vez que tive nada a ver com eles)

.

Pode muito bem haver APIs de áudio que você pode usar para fazer isso sem ficar preso no formato binário, mas eu suspeito que eles demorar tanto tempo para aprender como apenas fazê-lo sozinho, como você não está fazendo nada de particularmente complicado.

Se você estiver usando Net 2.0 ou superior, em seguida, você pode usar o class System.Media.SoundPlayer e especificamente a sua método PlayLooping para conseguir o que deseja sem gagueira. Isso é preferível a criação de um novo arquivo wav - isso significa menos espaço em disco para o arquivo e menos memória necessária para processar o som. Em geral, você deve sempre usar técnicas como esta para reprodução de áudio tamponada se o som vai ser enrolada ou é mais do que alguns segundos.

Você pode fazer isso facilmente em C # usando o NAudio .NET biblioteca de áudio. Você precisaria usar as classes WaveFileReader e WaveFileWriter. Você também pode usá-lo para criar uma WaveStream personalizado que repetirá o áudio tantas vezes quanto quiser, sem a necessidade de criar um arquivo WAV muito tempo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top