Вот общее описание моей проблемы.
У меня есть папка для моей любимой музыки (хорошо, это на самом деле не проблема: D) Есть 2-3 потока радиостанцийкоторый я периодически переключаюсь.Иногда, когда я слушаю какой-нибудь трек по радио, я понимаю, что он мне нравится, и хочу сохранить его в своей папке «Избранное».Как вы можете догадаться, проблема в том, что когда я решаю, что хочу сохранить трек, он уже частично воспроизведен, в то время как он должен быть сохранен полностью с самого начала.
В общем, все должно быть так: я слушаю стрим -> решаю, что хочу сохранить его в своей папке -> нажмите какую-нибудь кнопку -> после того, как трек на радиопотоке закончится, он появляется вмоя любимая папка.
Я использую Ubuntu Linux 10,04, Rhythmbox для прослушивания потока.Я в порядке установки любых других программ из репозитория Ubuntu или из внешнего источника.Я в порядке с написанием / использованием сценариев Python, Bash или даже программ на Java или C ++.
Мои исследования по этой проблеме следующие.
Популярное программное обеспечение для радиопотокаразорвать это потокУ меня не было проблем с этим, сохраняя все треки в один файл или разбивая входящий поток на отдельные файлы.Таким образом, мой первый подход состоял в том, чтобы просто начать копировать поток на отдельные треки и транслировать его, чтобы иметь возможность слушать себя.Проблемы с этим подходом:
- У меня много файлов, которые мне нужно будет обработать, удалив все, кроме тех, которые мне понравились
- Как я помнюкакие треки мне действительно понравились?
- Загрузка жесткого диска - при копировании с 2-3 потоков, похоже, постоянная загрузка на диск.Это кажется излишним, так как большая часть данных, сохраненных на диск, будет затем удалена
Я считаю, что первую проблему можно решить с помощью некоторой фоновой программы / скрипта - удаление последнего файла, если кнопка «Мне нравится»не нажимался ранее.
Вторую проблему можно решить с помощью dbus для ритмбокса, например, написав скрипт python , чтобы задать ритмбоксу название текущей воспроизводимой дорожки.
Я еще не нашел решение для третьей проблемы.Мне кажется, что именованные каналы Linux - это способ вообще избежать загрузки диска.Но при копировании на отдельные дорожки streamripper делает создание файлов, поэтому я не могу сделать их именованными каналами вместо обычных файлов.Конечно, я могу создать именованный канал и дать команду stramripper сохранить весь поток в этот файл, одновременно читая данные с другого конца канала с помощью некоторой программы.Но в этом случае я не могу использовать логику разделения треков streamripper.
Так как мне решить мою проблему?Есть ли способ, которым я могу завершить свой подход, решив третью проблему?Или есть совершенно другой подход к моей общей проблеме?Единственное требование к программному обеспечению - это сама Ubuntu.Я могу принимать любые программы.