public
Description: A Haskell program to play Internet radio using the new GStreamer bindings
Homepage: http://eklitzke.org
Clone URL: git://github.com/eklitzke/radio-player.git
eklitzke (author)
Sat Oct 18 00:21:42 -0700 2008
commit  45883714691267ac8bb6f6b6a62161d7d8a62501
tree    9d391b49abd96e60ee16dff8084f78eef41b2947
parent  40eafa26a95f75c2aa38f2a53ed4aa9116688eb5
name age message
file .gitignore Fri Oct 17 22:25:14 -0700 2008 make it work with only one executable [eklitzke]
file LICENSE Fri Oct 17 21:15:38 -0700 2008 license the code under a BSD license [eklitzke]
file Makefile Fri Oct 17 20:29:43 -0700 2008 add Makefile [eklitzke]
file README Fri Oct 17 23:43:21 -0700 2008 update documentation [eklitzke]
file radio.hs Sat Oct 18 00:21:42 -0700 2008 comments [eklitzke]
README
This is a small program that lets you listen to Internet radio using the GHC
GStreamer bindings.

This is just for fun/learning.

Current Status
==============
The GStreamer bindings are almost totally undocumented, but there was a demo
program in the Gtk2Hs darcs tree, and with that I've gotten a really crude
player up and running (yes, it plays audio!). Currently the radio program will
write to a named pipe "/tmp/radio.fifo" in a forkIO, and the GStreamer code
will read from this pipe.

This is kind of ugly. Try as I might, I wasn't able to figure out how to get
the radio player to work without a temporary file. GStreamer has a mode where
it can read from a file descriptor, but what would always happen is it would
play for a few seconds and then stop. My suspicion is that these first few
seconds were the buffered content, and GStreamer didn't know how to make the
socket fetch more data.

I hope to get something working without temporary files...