- Home /
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.
Answer by gvergidis · Apr 06, 2018 at 09:12 AM
@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.Dispose();
www = null;
played = false;
timer = 0;
}
}
if (www == null)
{
PLOG("www is empty. Going to initialize www.");
//www = new WWW(url);
www = new WWW("http://dromos898.live24.gr/dromos898");
PLOG("Downloading...");
//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;
audioSource.Play();
played = true;
clip = new AudioClip();
}
}
play = true;
}
}
Answer by Ginxx009 · Apr 06, 2018 at 08:22 AM
I guess this might help
Download bass and bass.net from http://bass.radio42.com
Place the 64-bit bass.dll into your unity root project folder
Place the Bass.Net.dll into the unity plugins directory
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 = "http://111.11.11.11:1111/Live";
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); PlayStream(url); } public void PlayStream(string url) { if(stream != 0) { Bass.BASS_ChannelPlay(stream, false); } else { Debug.Log ("BASS Error Code = " + Bass.BASS_ErrorGetCode()); } } public void StopStream() { Bass.BASS_ChannelStop(stream); } // Get the Channel Information public string GetChannelInfo() { BASS_CHANNELINFO info = new BASS_CHANNELINFO(); Bass.BASS_ChannelGetInfo(stream, info); return info.ToString (); } public void SetVolume(float value) { Bass.BASS_SetVolume(value); } void OnApplicationQuit() { // free the stream Bass.BASS_StreamFree(stream); // free BASS Bass.BASS_Free(); } }
Registering BassdotNet
.
void Awake()
{
BassNet.Registration("sample@gmail.com", "XXXXXXXXXXX");
}
Hope this might help you achieve what you are trying to do.
Answer by OFFIS_sebastian · Jul 09, 2020 at 02:08 PM
@Ginxx009 That helped me, thank you.
Any way I can use this in conjunction with Audio Source, for spatial sound?
Your answer
Follow this Question
Related Questions
Avoiding Bloom Pop 1 Answer
Enabling disabling objects via raycast 0 Answers
How to create an Animated 2D Line to help the user aim and shoot? 0 Answers
Compiler failed to execute. 1 Answer
build VR samples for android 0 Answers