[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]

Файл: Music Anime.png -(521 KB, 1600x1200, Music Anime.png)
521 No.173104  

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

>> No.173105  

>>173104
Какая цель у этой процедуры?
Самое банальное, что можно предложить — named pipe, если конечно плеер нормально отнесется к "файлу" в котором нельзя делать seek(). Но в этом случае не будет сохранения предыдущего.
Пять секунд гугла дают ссылку на https://github.com/wavexx/fIcy, возможно оно подойдет для этой задачи, либо придется немного модифицировать его.

Если же задача состоит именно в том, чтобы все происходило в одном файле, то без написания извращенного FUSE-драйвера, который будет знать о аудио-содержимом, обойтись вряд ли удастся.

>> No.173109  

>>173105

>Какая цель у этой процедуры?

Трансляция потока в игру, которая этот поток умеет «слышать», подстраиваться под него и искажать во время игры. В настройках игры есть возможность указать каталог с музыкой и выбрать нужный трек из этого каталога.

>> No.173110  

>>173109
Без знания того как конкретно игра работает с этими файлами вряд ли можно сказать что-то конкретное, но я бы начал с того, что натравил ее на файл, который пишется через curl со стрима в реальном времени и посмотрел бы на реакцию. Если оно начнет играть и при этом будет играть заметно дольше, чем было записано на момент начала воспроизведения, то это уже очень хорошо, так как позволит сказать, что декодер в игре не поперхнется стримом и будет играть до конца файла, а не остановится раньше времени по его первоначальным представлениям о файле.
Если декодер в игре именно такой, то дальше можно будет либо продолжить использовать curl, либо написать небольшой модуль для dokany, который оформит это все в красивый файл.
Если же декодер противный и делает всякие пакости класса произвольного доступа в файле или отдачи приоритета своим начальным представления, то все значительно усложняется.




[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]