2011-11-21 1 views
0

Вот общее описание моей проблемы.сохранение любимых треков из радиопотока

У меня есть папка для моей любимой музыки (нормально, на самом деле это не проблема: D) Есть 2-3 радиостанции, которые я периодически переключаю между ними. Иногда, когда я слушаю какой-то трек на радио, я понимаю, что мне это нравится, и хочу сохранить его в своей папке избранных. Как вы можете догадаться, проблема в том, что, когда я решаю, что хочу сохранить трек, он уже был воспроизведен частично, в то время как он должен быть полностью сохранен с самого начала.

В общем, это должно быть так: я слушаю поток -> решите, что хочу сохранить его в моей папке -> нажмите некоторую кнопку -> после того, как трек на радиопотоке закончен, он появляется в моих любимых папка.

Я использую ubuntu linux 10.04, rhythmbox для прослушивания потоков. Я в порядке с установкой любых других программ либо из репозитория ubuntu, либо из внешнего источника. Я в порядке с написанием/использованием сценариев python, bash или даже программ в java или C++.

Мое исследование по этой проблеме следует.

Популярное программное обеспечение для радиопотока - это потоковое устройство. У меня не было проблем с этим, сохраняя все треки в одном файле или разбивая входящий поток на отдельные файлы. Итак, мой первый подход состоял в том, чтобы начать разворачивать поток на отдельные треки и передавать его, чтобы он мог слушать себя. Проблемы с этим подходом:

  • Я в конечном итоге с большим количеством файлов, которые я тогда придется обработать, удаление всех из них, но те, которые я любил
  • Как я помню, какие треки я на самом деле понравилось?
  • Загрузка жесткого диска - при копировании из потока 2-3 он становится постоянной нагрузкой на диск. Это кажется излишним, поскольку большая часть данных, сохраненных на диске, будет удалена.

Я считаю, что первая проблема может быть решена с помощью какой-либо фоновой программы/скрипта - удаления последнего файла, если кнопка «Мне нравится» не имеет был нажат до этого.

Вторая проблема может быть решена с использованием dbus для ритм-бокса, например, написав python script, чтобы задать rhythmbox имя текущей воспроизводимой дорожки.

Я еще не придумал решение для третьей проблемы. Мне кажется, что linux named pipes - это способ избежать любой нагрузки на диск вообще. Но при разрыве на отдельные треки streamripper создает файлы, поэтому я не могу сделать их именованными каналами вместо обычных файлов. Конечно, я могу создать именованный канал и указать stramripper для сохранения всего потока в этот файл, а также чтение данных с другого конца канала с помощью какой-либо программы. Но в этом случае я не могу использовать логику расщепления треков streamripper.

Так как я могу решить свою проблему? Есть ли способ завершить мой подход, разрешив третью проблему? Или существует совершенно другой подход к моей общей проблеме? Единственным требованием к программному обеспечению является сам ubuntu. Я могу принимать любые программы.

+0

почему бы не отрываться на поршневой диск, а затем переместить файл, когда вы пометить его «я люблю» кнопку? –

+0

@ F.C. Я вообще не знаком с диском RAM. Работает ли с ним абсолютно без нагрузки на жесткий диск? Могу ли я монтировать и отключать его, не изменяя конфигурацию системы? В любом случае это кажется многообещающим. Пожалуйста, разместите его как ответ. –

ответ

1

Использование дискового устройства не касалось жесткого диска, но у вас должно быть достаточно бара, чтобы сохранить ваш разорванный контент.

https://www.google.com/search?q=linux+make+ram+disk

+0

Я обнаружил, что при моей установке уже готов ramdisk -/dev/shm. Я не вижу никаких проблем с реализацией моей идеи сейчас, спасибо! –