LINUX.ORG.RU

[bash] Воспроизведение звука


0

0

Недавно узнал, что через bash-скрипты можно воспроизводить звук. Например, если есть файл sound.raw со звуковыми данными, то его можно воспроизвести с помощью команды:

% cat sound.raw > /dev/dsp

Вот только одна проблема. Перед тем, как что-то записывать в устройство /dev/dsp, его необходимо настроить. Например, в C программе это делается так:

dsp = open("/dev/dsp", O_WRONLY, 0);
format = AFMT_U8;
ioctl(dsp, SNDCTL_DSP_SETFMT, &format);
cnls = 1;
ioctl(dsp, SNDCTL_DSP_CHANNELS, &cnls);
freq = 22050;
ioctl(dsp, SNDCTL_DSP_SPEED, &freq);

И только после этого можно записывать данные. А в bash-скриптах как вызывать функцию ioctl?

Re: [bash] Воспроизведение звука

man sox

lester ★★★★ ()

Re: [bash] Воспроизведение звука

ты еще в баш попроси работу с указателями как в С.
Каждому свое.

sdio ★★★★★ ()

Re: [bash] Воспроизведение звука

может лучше play для этого пользовать?

Rastafarra ★★★★ ()
Ответ на: Re: [bash] Воспроизведение звука от sdio

Re: [bash] Воспроизведение звука

> ты еще в баш попроси работу с указателями как в С. Каждому свое.

Кстати хорошая мысль -- ioctl для баш.

format=AFMT_U8
format=`ioctl /dev/dsp SNDCTL_DSP_SETFMT $format`
cnls=1
cnls=`ioctl /dev/dsp SNDCTL_DSP_CHANNELS $cnls`
freq=22050
freq=`ioctl /dev/dsp SNDCTL_DSP_SPEED $freq`

www_linux_org_ru ★★★★★ ()

Re: [bash] Воспроизведение звука

А ты mplayer из баш-скрипта запустить не пробовал?

// Искренне Ваш, К.О

Absurd ★★★ ()
Ответ на: Re: [bash] Воспроизведение звука от Absurd

Re: [bash] Воспроизведение звука

>>А ты mplayer из баш-скрипта запустить не пробовал?
Вопреки нику мысль очень здравая)))
Но возможно автор хочет переносимости скрипта на машинки без плеера, установленного у него(:
Хотя я бы так и сделал...

Dikar ★★ ()
Ответ на: Re: [bash] Воспроизведение звука от const86

Re: [bash] Воспроизведение звука

> Вот именно. Как раз mplayer портабельнее.

нафига mplayer? sox( для тех кто не знает /usr/bin/play - это также он ) - весит гораздо меньше, зависимостей лишних тоже меньше

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