|
mpg321В предыдущем разделе было решено использовать по возможности програмные компоненты, готовые к употреблению. mpg321 - это плейер audio-mpg файлов, в т.ч. mp3. Он не единственный в природе, но был выбран по следующим причинам: присутствовал в моём дистрибутиве Zenwalk, им можно управлять с командной строки и даже есть режим для работы с фронт-endом, он достаточно компактен. Не путайте его с mpg123 - такой плейер тоже есть, но речь не о нем. Особенно интересен режим работы с фронт-endом: для работы в этом режиме приложение (фронт-end - т.е. некая программа, обеспечивающая пользовательский интерфейс) открывает двунаправленный канал ввода-вывода, а затем запускает mpg321 подключенным к этому каналу, указав специальный ключ командной строки. После этого фронт-end отдает по каналу команды на воспроизведение файлов, остановки, паузы и т.д. и получает информацию о состоянии плейера. Пользователь не пугается командной строки, фронт-end обеспечивает подходящий интерфейс, mpg321 воспроизводит музыку. Каждый занят своим делом. Пользователь у нас уже есть, mpg321 можно найти даже скомпилированным, остается фронт-end. Его мы напишем сами. А пока не написали, просто убедитесь, что все остальное работает: если в командной строке mpg321 указать имя файла - он его должен воспроизвести: mpg321 mylikemusic.mp3 Если это работает - больше mpg321 не трогаем. Если нет - лезем в тематические форумы фидо или инета. Хотя лучше сначала проверить подключенность аккустики, корректность определения ядром звуковой карты (и вообще, наличие в ядре oss или alsa) и установки микшера. alsactl и amixerОбе программы управляют микшером звуковой карты. Однако первая, в некоторым смысле, системная - она позволяет управлять бОльшим набором параметров, а также сохранять и восстанавливать все параметры одной командой. Вторая же - скорее - пользовательский интерфейс - ей удобнее подстраивать отдельные параметры, однако она также обладает командно-строчным интерфейсом, что позволяет использовать её из нашей программы-координатора. Можно предложить такую последовательность их использования (конкретные команды я не могу привести, т.к. они зависят от звукового контроллера, а точнее - его микшера):
proftpdКак и многое другое в плейере - ftp - это часть опциональная. Но удобная. Иногда она удобна просто как домашний ftp для перекидывания файлов с одной машины на другую, иногда по прямому назначению - закачивание-удаление файлов с плейера. Выбор пал на proftpd лишь по одной причине - его удалось найти построенным для Zenwalk раньше других. Если бы я использовал FreeBSD - остановился бы на ftpd; proftpd, IMHO, слишком могучая прога для нашей простой задачи. Никаких особых сложностей при настройке proftpd у меня не возникло - лезем в инет, читаем мануалы, рекомендации бывалых, находим близкий к желаемому конфиг, подправляем слегка и после запуска программы внимательно читаем логи. Там будет написано, что еще нужно подправить. Тонкости, на которые я обращу ваше внимание:
sshdУдаленное управление плейером - штука очень удобная. Как было поставлено в ТЗ, монитора плейер не имеет, а между тем отладку управляющей оболочки, добавление новых возможностей - без полноценной консоли - :((. Можно взять telnet, можно ssh. Последний шифрует трафик, других отличий вроде нет. Шифровать трафик между машинами, соединенными кроссовером, вообще -то ни к чему, но с другой стороны - и не вредно. А вдруг появится хаб и умные дети или еще что... Как настраивать ssh - говорилось уже много раз. Повторяться не буду, но напомню одну загогулину: ssh можно настроить на работу в режиме "безпарольного" (т.е. без запроса пароля на клиенте), но шифрованного доступа. В этом случае ssh выполнит часть проверок и сразу откроет сессию связи. Как это сделать (LinuxFormat 2 (71) oct 2005, p. 51): Генерируем публичный и приватный ключи на машине, с которой планируем подключаться к плейеру: ssh-keygen -t rsa Парольную фразу оставьте пустой. Переименовываем приватный ключ в ~/.ssh/identity, а публичный ключ копируем на плейер под именем ~/.ssh/authorized_keys. Если же основная машина работает под виндой, то telneat умеет работать с сохраненным в конфиге паролем, putty, вероятно, тоже. |