Important facts about commercial licenses

  • Licenses are perpetual. They do not expire and do not need to be renewed.
  • Licenses can be upgraded. You can upgrade to a more expensive license later paying only the difference in cost.
  • Pay attention to the distribution type - Hosted (sites / servers), binary (applications) or source (includes all the others). Choose according to your needs (more below).
  • All licenses allow commercial use unless otherwise indicated.
  • Read the full license by clicking on the icon.
  • Read more about licenses in our handy license guide.
$249

Single App License

1 application Binary restricted distribution 6 months support
$749

Developer License

5 applications Binary restricted distribution 6 months support
$1,999

Distributor License

Unlimited projects Source and binary distribution 1 year support
You need to log-in or create an account
  • Create an account
  • Log-in
  • Please use your real name.
  • Account activation link will be sent to this address.
  • Minimum 8 characters

Clicking this button confirms you read and agreed to the terms of use and privacy policy.

(41 ratings)

RadioTunes SDK for iOS

Featured RadioTunes SDK for iOS
Developed by Kemal Taskin, Released Oct 11, 2011

A radio streaming SDK for iOS with support for the http and mms protocols. RadioTunes SDK can play mp3, aac, aac+ and wma audio streams. Includes documented source code of a demo XCode project demonstrating usage.

Objective-C

Tags: ffmpeg , ios , ipad , iphone

RadioTunes Codec Support

A Powerful Radio Streaming Framework for iOS Software Developers!

RadioTunes SDK is written for iOS developers who want to add radio streaming functionality to their app using a couple lines of code. Behind the scenes RadioTunes relies on the iOS AudioQueue framework and the open source LGPL licensed FFmpeg library.

If your app does not require mms/wma codec functionality you can also use the RadioTunes SDK without including the FFmpeg library. The code for mms streaming is completely separated from the code for http streaming so that you can choose which portions of code you want to include in your project.

Disclaimer: RadioTunes SDK can play all Window Media Audio version 9 streams but some streams based on version 10 could fail.

Make your App look like a Pro

Be sure to check out the Radiojive Template if you want a great looking design for your radio app. This template also includes a fully working radio app that uses RadioTunes SDK!

Download the FREE Trial now and see for yourself how simple it is to add radio playback functionality to your app!

Back to top

Features & Package

Features

  • NEW FEATURE IN VERSION 2.1!
    • ASX playlist support.
  • NEW FEATURES IN VERSION 2.0!
    • Realtime audio recording.
    • Improved audio session management.
    • Bandwidth usage statistics.
  • Support for the http and mms protocols.
  • Supports mp3, aac, aac+ and wma audio streams.
  • PLS, M3U, ASX, XSPF and direct URL support.
  • Parsing of Shoutcast/Icecast metadata.
  • Automatic handling of interruptions like incoming phone calls.
  • Background playback.
  • Robust error handling.
  • Auto reconnect feature.
  • Works on Edge/3G/WiFi.

Package

  • Complete source code of RadioTunes SDK.
  • Detailed documentation with integration instructions.
  • Demo Xcode project.
  • Fully automated FFmpeg build scripts that will build universal static libraries for the armv7 and i386 architectures.
  • Pre-built FFmpeg universal static libraries with support for the mms protocol and wma audio codec.
Back to top

Documentation

Code Documentation

All public classes of RadioTunes SDK are documented using appledoc. See the documentation for further information.

Requirements

The source code of RadioTunes SDK is developed on Xcode 4.5.1 with iOS Base SDK 6.0. RadioTunes SDK works on a deployment target of iOS 5 or greater on armv7 and armv7s and can be used in ARC and non-ARC projects.

Integration

RadioTunes SDK can be integrated in two ways into your app.

1. Add the binary RadioTunes.framework

  • Drag RadioTunes.framework into the "Frameworks" group of your Xcode project.
  • Add the required libraries as shown in the screenshot below. You can add the FFmpeg libraries (libavcodec.a, libavformat.a, libavutil.a and libswresample.a) by dragging them from the "External/ffmpeg/lib" directory into your "Frameworks" group.
  • Open the Build Settings tab and apply the following changes:
    • Other Linker Flags -> -all_load -ObjC -lxml2
    • Don't Create Position Independent Executables -> Yes
  • Add the "Required background modes" key to your project's plist file and set it's value to "App plays audio".
  • Add the following import statement everywhere you want to use RadioTunes SDK: #import <RadioTunes/RadioTunes.h> Binary

2. Add RadioTunes.xcodeproj as a dependency

  • Copy the whole RadioTunes folder into your project's root folder.
  • Drag RadioTunes.xcodeproj into the "Frameworks" group of your Xcode project.
  • Add RadioTunes as a target dependency.
  • Add the required libraries as shown in the screenshot below.
  • Open the Build Settings tab and apply the following changes:
    • Other Linker Flags -> -all_load -ObjC -lxml2
    • Don't Create Position Independent Executables -> Yes
    • Add the following paths to "Header Search Paths":
      • $(SRCROOT)/RadioTunes/External/ffmpeg/include"
      • $(SRCROOT)/RadioTunes/RadioTunes"
    • Add the following path to "Library Search Paths":
      • **$(SRCROOT)/RadioTunes/External/ffmpeg/lib"
  • If your project uses ARC, open the Compile Sources section in the Build Phases tab. Add the -fno-objc-arc compiler flag to all .m source files belonging to RadioTunes SDK!
  • Add the "Required background modes" key to your project's plist file and set it's value to "App plays audio".
  • Add the following import statement everywhere you want to use RadioTunes SDK: #import "RadioTunes.h" Source

Sample Usage

YLHTTPRadio *radio = [[YLHTTPRadio alloc] initWithURL:[NSURL URLWithString:@"http://someurl"]];
[radio play];

YLMMSRadio *radio = [[YLMMSRadio alloc] initWithURL:[NSURL URLWithString:@"mms://someurl"]];
[radio play];
[radio startRecordingWithDestination:filePath];    
View all 33 reviews »

User Reviews

  • 1 of 1 people found this review helpful Cheng Tzu Hsiu 1 month ago
    It is a really very nice sdk, help me a lot. :)
    Flag
    Was this helpful? Yes No
  • 2 of 2 people found this review helpful Patrick Rørth 5 months ago
    Great SDK, looks good, workes awesome !
    Flag
    Was this helpful? Yes No
  • 1 of 1 people found this review helpful gholias 6 months ago
    Works as advertised. No problems installing it.
    Flag
    Was this helpful? Yes No
Read all 344 comments »

Questions & Comments


Or enter your name and Email
  • Patrick Rørth License holderSingle App License 17 hours ago
    Is there a way to add AirPlay ?
    • Kemal Taskin Developer 16 hours ago
      Hi Patrick,

      You can add AirPlay to your app by using the MPVolumeView class which is a part of the iOS SDK and not RadioTunes SDK.
    • Patrick Rørth License holderSingle App License 14 hours ago
      Thanks a lot. I'll give it a try
  • N. Persson License holderSingle App License 7 days ago
    Hi,

    I have a few things I would like clarified:

    - Have you made your own custom streaming player using CoreAudio /w hardware decoding, or are you using AVFoundation or similar (maybe even libav) to provide decoding + playback functionality?

    - Are there any support for connection loss/network issues, feeding the audio stream to prevent iOS shutting down the background thread when multitasking?

    - You mention m3u support - how about the m3u8 playlist format?

    Thanks!
    • Kemal Taskin Developer 7 days ago
      Hi,

      - RadioTunes SDK is using its own custom audio player based on AudioQueue to provide hardware decoding and playback functionality. MMS audio streams are software decoded by FFmpeg and use AudioQueue for playback.

      - RadioTunes handles audio interruptions and network issues. During network loss it tries to reconnect with a timeout of 60 seconds. There's also a mechanism that can detect the availability of WiFi and automatically switch from 3G to WiFi.

      - RadioTunes works in the background of course and also has ways to reconnect in the background during network loss.

      - M3U is supported but there's no support for m3u8.
    • N. Persson License holderSingle App License 7 days ago
      Thanks for answering!

      So how's it all connected - how would I go about creating my own m3u8 parser using your player? Do I simply extend some "base-playlist-parser"-class and provide the file URLs when I've finished parsing it, or?
    • Kemal Taskin Developer 7 days ago
      Yes, you can create your own parser which must implement the YLPlaylistParserProtocol:
      http://yakamozlabs.com/static/radiotunes/Protocols/YLPlaylistParserProtocol.html

      So your parser should basically return an URL.
    • N. Persson License holderSingle App License 7 days ago
      But there can be multiple chunks//files in a single playlist - there's no support for that?
    • Kemal Taskin Developer 7 days ago
      Right now only one URL is supported. So if you want to play a playlist with multiple URL items in it, you'll need to parse the playlist yourself and pass the URL's one by one to YLHTTPRadio or YLMMSRadio.
    • N. Persson License holderSingle App License 7 days ago
      Alright. Thanks again for answering this quick.

      Last question: I'm going to need the source code to make the changes needed. Would the $250 version be good enough for that, given that I'm only going to use this in a single app distributed on the AppStore?
    • Kemal Taskin Developer 7 days ago
      Yes, all our licenses come with source code but have different terms regarding distribution and the number of apps you can use it with.
    • N. Persson License holderSingle App License 2 days ago
      Hey Kemal

      We tried out your "Demo" app on one of our live radio streams (we chose the MP3 one) and it had problems buffering (took ages - >10s - and ran out constantly).

      The phone was connected to the LTE network with a 30 mbit up- and downstream connection.

      Is this a known issue or something easily fixable?

      The streams were the same as those used by TuneIn.
    • Kemal Taskin Developer 2 days ago
      Hi,

      10 seconds is not normal, it should be more like 2-3 seconds. Can you share the radio URL with me? You can also mail it to "kemal dot taskin at gmail dot com" if it's private.
  • Dario Lessa 1 week ago
    Hi, i´m interesting in RadioTunes, but my project it´s with storyboard. It´s possible add this player to my project?

    Regards.
    • Kemal Taskin Developer 1 week ago
      Hi Dario,

      RadioTunes SDK is not a UI component so it doesn't matter if your project uses a storyboard or not. If you have a tableview in your storyboard for example, you should use RadioTunes API to start/pause radio playback when a user taps on a tableview cell.
    • Dario Lessa 1 week ago
      Thanks Kemal, so i´ll try to integrate the demo version in my project. The
You must be logged-in to vote. Log-in to your account or register now.