Radio streaming

Hello to all.

I’m New to unity and I am trying to learn developing applications for mobile devices with 3d graphics. So, in my first application I am creating a driving simulation and I want the player to listen to live radio stations. But, from my research till now, I could not make it happen. Unity’s www library with streaming=true audio clips don’t seem to work. Can anyone help me or give me a tip?

Any help appreciated.

Ps: I prefer not to use plugins since I want to learn do it on my own. Thank you in advance.

I guess this might help

  1. Download bass and from

  2. Place the 64-bit bass.dll into your unity root project folder

  3. Place the Bass.Net.dll into the unity plugins directory

  4. Create a c# file

    using UnityEngine;
    using System.Collections;
    using System.Runtime.InteropServices;
    using System;
    using Un4seen.Bass;

    public class AudioStream : MonoBehaviour
    public string url = “”;

    private int stream;
    // Use this for initialization
    void Start ()
        Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_NET_PLAYLIST, 0);
        Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero);
        stream = Bass.BASS_StreamCreateURL(url, 0, BASSFlag.BASS_DEFAULT,  null, IntPtr.Zero);
    public void PlayStream(string url)
        if(stream != 0)
            Bass.BASS_ChannelPlay(stream, false);
            Debug.Log ("BASS Error Code = " + Bass.BASS_ErrorGetCode());
    public void StopStream()
    // Get the Channel Information
    public string  GetChannelInfo()
        Bass.BASS_ChannelGetInfo(stream, info);
        return info.ToString ();
    public void SetVolume(float value)
    void OnApplicationQuit()
            // free the stream
            // free BASS


  5. Registering BassdotNet


 void Awake()
 BassNet.Registration("", "XXXXXXXXXXX");

Hope this might help you achieve what you are trying to do.

@PaulKevin Thank you for your answer Paul. I am really looking for a no-plugin way so I can code it on my own and learn unity this way. Thank you anyways again for your answer.

Ok. So I managed to make a url stream BUT there are glitches of ~0.5 seconds between clip plays and ofcour the result is not acceptable. Can anyone help me?

The interval is 3 and I call this method on update if play boolean is true. Any ideas?

    IEnumerator streeeam()
            Debug.Log(timer + " INT : " + interval);
            timer = timer + 100 * Time.deltaTime; 
            if (timer >= interval)
            {             //if(timer%interval == 0){
                if (www != null)
                    www = null;
                    played = false;
                    timer = 0;
            if (www == null)
                PLOG("www is empty. Going to initialize www.");
                //www = new WWW(url);
                www = new WWW("");
                //wait for the download to build up a buffer
                while (www.progress < 0.001f)
                    yield return null;
                PLOG("We got www. Lets proceed.");
            clip = www.GetAudioClip(false, true, AudioType.MPEG);
            yield return clip;
            if (clip != null)
                PLOG("Clip is not null. Trying to play clip");
                if (clip.loadState == AudioDataLoadState.Loaded && !played)
                    PLOG("Clip loaded. Going to play?");
                    if (!audioSource.isPlaying)
                        PLOG("We are not playing. So lets move on...");
                        audioSource.clip = clip;
                        played = true;
                        clip = new AudioClip();
                play = true;

@Ginxx009 That helped me, thank you.

Any way I can use this in conjunction with Audio Source, for spatial sound?