How can I build an Internet radio app?

Navya December 15, 2011

How can I build an Internet radio application for Windows 7? I need technical details or a tutorial please. Thanks!

  1. lucian
    July 24, 2012 at 11:25 am

    Hi. I had my online radio station application built by a company called server room. they provide online radio services as well so they probably have been doing this for a while. the address is I think.
    Best of luck to you!

  2. Jeff Fabish
    December 16, 2011 at 7:33 am

    As Richard said, don't re-invent the wheel where possible. There are plenty of applications that will do this that already exist. However, if you do have an idea that hasn't already been pounded into the ground and you feel that it's original enough to spend the next few years learning the various technologies required to accomplish it, I stress that you do so. No single tutorial will teach you how to write a multimillion dollar application, you will need several hundred (programming, servers, security, GUI dev, etc.). This isn't a job for a single developer, but once you get into the programming community you can balance the workload by hiring on some other developers.

    For back-end development, using a combination of C++ and Python would be most efficient. If your targeted audience reaches users from operating systems other than Windows, avoid the dot net framework as it's fairly platform specific. There are a great many cross-platform API's and libraries you can use to lighten the workload. Java would be a good choice for such an application (since it's heavily network orientated), however there are fewer frameworks available for UI development for Java. UI will play a vital role in the success (or lack there of) of your application.

    Front-end (GUI) development can be done in FLEX, the SDK is free and allows you to make very clean user interfaces (plus it's cross platform). Liquid is also another decent choice (technically, you can use both). However, I would develop with an integrated framework such as WxWidgets and QT (supports embedded development, my choice) which are available on multiple platforms, which significantly reduces the workload when porting to another operating system. These frameworks allow you to do the backend development in their IDE while designing the user interface in a UI builder.

    Optionally, you can do your development in a framework such as WPF on the dot net environment, however you will have to rewrite the modules that are specific to Windows (most of it) if you plan to port to Linux, Mac/iOS or any other operating system. Although 'DotGNU' and 'Monodevelop' support the dot net framework, it's very primitive. 

    You will need a website & servers to host the media on and of course legal agreements with the author of the media so that you can legally play it. I suggest you use a widely supported database such as ODBC or MySQL to store your users, their favorites, playlists, etc to make implementation in your application simpler. There are many libraries available for both, especially for the C++ language.

    Lastly comes your revenue model, return on investment and your overall business plan. How will you make money with this application? Why would a user chose your application over an alternative (how will your stands out)? This is often overlooked, which unfortunately stalls the development.

    My advice to you: Don't start with a desktop application. Build a website (such as what Pandora offers) and get the users attention that way, then introduce a desktop application. This way you already have a good userbase, competent media resources and all you have to do then is write the code.

    Would you like some resources on C++? If you have any specific questions I'll be happy to answer them. It's hard to cover such an open question in a single reply.

    - Jeff

    • YRS
      December 30, 2011 at 8:17 am

      I too have a similar project (in Delhi, India) as Navya. And I am looking for some resources online. I found the answer from Jeff really useful, thanks a lot Jeff. If possible please share the resources you have mentioned above. I would soon update my findings and progress in the same comment thread and as a seperate thread.

      • Jeff Fabish
        December 30, 2011 at 9:03 am

        In order to make use of the libraries I mentioned above, you will need to know (and love) C++. Start with Native C++ and then worry about learning the GUI library API later. I would probably use WxWidgets or GTK for my GUI platform. The only application I develop currently is heavily windows-specific, so I'm afraid I couldn't help you with any of the specifics. (Tell me which one you chose and I'll point you in the right direction)

        If you don't have any programming experience, C++ is probably not a good place to start. Language such as Delphi (oddly familiar to your cities name) or Pascal, these languages are easy on the beginner whilst enforcing good syntax and rules on the programmer. Once you know either (or both), you can move onto C++.

        Assuming you have programming experience, here are some resources to help you learn C++.

        Resources (C++)
        C++ Without Fear: A Beginner's Guide That Makes You Feel Smart
        Practical C++ Programming, Second Edition
        Sams Teach Yourself C++ in One Hour a Day (7th Edition)

        I own all three of those books, I highly recommend any and all of them. I don't usually recommend "Learn <whatever> in x days" books, but it's quite good. - C++ Programming (Getting Started; non-free) - C++ Fundamentals (Getting object oriented; non-free)

        Once you feel comfortable with C++, proceed to network programming (RPC, Sockets & Databasing) and whichever GUI library you chose. To fully comprehend C++ can take quite a bit of time.

        Feel free to reply with questions or requests for more resources. Be more specific, such as what your target platform (Windows, Mac/iOs, Linux, all) is.

        - Jeff

  3. Richard Carpenter
    December 16, 2011 at 5:43 am

    Well That depends... How much programming experience do you have? I am searching for open source projects as starting places, but there is not going to be a specific tutorial on building a application for streaming internet radio. This is not a easy thing to do and make functional.

    Is there a reason you can not use a iHeartRadio or a similar service? Or use VLC to listen to a stream?