Воспроизведение и запись звука в программе, goalsa/alsa-lib
Воспользовался библиотекой goalsa (обертка над alsa-lib), задача решена, но есть пара вопросов:
Чем ограничено количество семплов, которые будут воспроизводиться?
out, _ := alsa.NewPlaybackDevice( "hw:0,0", 2, // количество каналов alsa.FormatS16LE, 44100, alsa.BufferParams{}, ) defer out.Close() samples := make([]int16, 2) // получения семпла _, err := out.Write(samples)Если размер слайса
samplesбудет 1, то воспроизводиться не будет, но и ошибки тоже не возвращается, это обусловлено количеством каналов?Чем ограничено количество считываемых семплов?
in, _ := alsa.NewCaptureDevice( "hw:0,0", 2, // количество каналов alsa.FormatS16LE, 44100, alsa.BufferParams{}, ) defer in.Close() samples := make([]int16, 2) for { _, err := in.Read(samples) }
Если размер слайса samples 2 то, почти сразу возникает ошибка overrun, почему так может происходить?