LINUX.ORG.RU

вывод звука под Linux


0

0

надо написать программку, которая гнала бы цифровой поток на аудио выход. Где можно что-нить путевое почитать по выводу звука под Linux? и чего в ядре кроме драйвера звуковой платы включить нужно?

★★

открыть файл устройства звуковой платы, выставить нужные параметры, и write как в обычный файл... :-)

В интернете много информации о программировании звука в Линуксе. g Linux sound programming

smh ★★★
()

Вот пример функции для вывода звука (формат CD-Audio) на карту:


#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/soundcard.h>


//Сэмплы лежат в buf.
//Количество данных в байтах указывается в size.
int write_snd(const char *buf, int size)
  {
  int fmt = AFMT_S16_LE;    //формат = 16-битные данные, little-endian
  int rate = 44100;         //частота дискретизации = 44100 Гц
  int nchan = 2;            //количество каналов = 2
  int i = 0, cnt, fd;

  if ((fd = open("/dev/dsp", O_WRONLY)) != -1 &&
      !ioctl(fd, SNDCTL_DSP_SETFMT, &fmt)     &&
      !ioctl(fd, SNDCTL_DSP_SPEED, &rate)     &&
      !ioctl(fd, SNDCTL_DSP_CHANNELS, &nchan))

    for (; i < size; i += cnt)
      if ((cnt = write(fd, buf + i; size - i)) <= 0)
        break;

  close(fd);
  return i == size;
  }

nobody ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.