Гость Опубликовано 13 мая, 2005 Жалоба Поделиться Опубликовано 13 мая, 2005 Здравствуйте! По причине того, что стандартный ALSA-plugin для XMMS у меня работать не хочет, пришлось наваять свой "плагинчик" на основе Null XMMS plugin. Суть такая: char cmdline[255]; FILE *playpipe; ... sprintf(&cmdline[0], "aplay -Dplug:subdup -r %d -f S16_LE -c %d -t raw", rate,nch); playpipe=popen(&cmdline[0],"w") ... // это вызывается для каждого куска потока размером в length fwrite(ptr,length,1,playpipe); written += length; ... pclose(playpipe); Вышестоящие строки распиханы в соответствующие функции (init,write,close) базового плагина, который сам по себе ничего не делает. aplay - стандартная утилита из ALSA для проигрывания не сжатого звука. subdup - route-плагин для ALSA, дублирующий стерео на 6 каналов ПРОБЛЕМА вот: Иногда во время проигрывания появляются мерзкие щелчки. Щёлкает каждые секунд 10. Почти без всякой системы (я по крайней мере её не нашел), чаще их нет, иногда появляются, когда режу болванку - обязательно. Кто-нибудь знает, где грабли? Является ли pipe - защищённым каналом, куда не может попасть всякий мусор? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.