= AudioStreamIce =

  • a complete Unity client for SHOUTcast/Icecast streams, including cloud and local media streaming in supported formats
  • managed decoders for MPEG, OggVorbis and OggOPUS formats - compatible with most commonly accessible public streaming stations
  • customizable UnityWebRequest for all networking
  • has extensive support for iOS command center/lock screen, and background running

Demo builds:
Windows | macOS | Android

For more information please see also latest Documentation
and Asset Store page

reserved .o

Asset v 1.0 is live / with 30% discount for a week since now /

just submitted support for retrieving all playlist items and few fixes, hopefully it will be there soon
demos should be already available

V 1.1 072022 X22

  • added playlist items browsing support
  • fixed local mp3 files tags
  • fixed iOS platform Control Center + metadata
  • also fixed too tight init/download restriction

Will this work under Linux?

It should - nothing included is preventing it .
If you hit any issue on Linux just let me know
Thanks !

Made a linux build : https://www.dropbox.com/s/mvu7fgvz7m9aulv/AudioStreamIce_Linux.zip?dl=1 :
let me know if it works !

@r618 I seem to be running into issues getting this to work in a WebGL build. This works fine in playmode in the editor but not when built and run through a browser. Any idea as to what might be causing the issue? Audio plays fine in the build using a normal audioclip. The console logs just have a “Waiting for response headers” spamming the log after playing

I should have emphasized this more, but it is mentioned on the store page - in technical details:
// note: since UnityWebRequest doesn’t currently support WebGL in a way which would enable incremental delivery of compressed audio data, this platform is currently not supported.
Otherwise the asset should run on any platform which has System.Threading namespace available.

I’ll make sure to update the store description to make this more visible

/ technically AudioClips can be created at runtime on WebGL, only this needs to be updating them continuously via UnityWebRequest - which doesn’t work there /

  • sorry for now !

Please let me know if you have further questions!

Hi, could you please post a sample script demonstrating how / where to add an fft output filter (for visualization). Not using Unity’s audio, so this is through FMOD…

I try to use the example but “bus:/” can’t be found:

https://fmod.com/docs/2.02/unity/examples-spectrum-analysis.html

If it matters, the goal is to be able to play on iOS and android from a network stream, be able to play in the background (bypass Unity audio), and when the app is active, send fft data to the music visualizer.

answered also here : AudioStream - {local|remote media} → AudioSource|AudioMixer → {outputs} page-19#post-8925956
please try to not crosspost
this asset does use Unity audio only

small update pushed:

(prev. V 1.2 102022

  • demo - added AudioTextures)

V 1.3 092023

  • added optional System.Net.HttpWebRequest backed ‘attemptToResolveUrlRedirection’ flag to resolve Url redirects when connecting

// min. supported Unity version is 2019.4.5 due to bug in Il2CPP builds in lower versions

Linux build of the demo is also available ~

if you encounter weird skips/glitching with certain MP3 files, please let me know - I’ll expedite a fix

// had to also update decoding lib which apparently contained incorrect audio decoding table - this shouldn’t be related to the above though /

~ Thank you for the attention ~

fix submitted :
V 1.3.1 122023

  • improved handling of decoder thread when stopping/destroying
  • MPEG decoder: fixed incorrect state for certain MPEG files and updated used NLayer library build

(FWIW although this MPEG decoder now works (much) better, it still can’t parse some files/stream which e.g. AudioStream can - we can’t have all things)

-** December '23 SALE **-

  • For two weeks - until about ~28th - the asset is 40% OFF

Don’t forget to download demos and enjoy the holidays - \o|

Hello. We’ve purchased the asset and it was working great until we updated the project to Unity 2022 LTS. The issue only happens on iOS. It can be reproduced in the demo scene as well. When you minimize the app and open it again (without killing it), the rendering stops working. Even though the FPS rate stays the same and time scale stays 1. It happens as in our project, so as in a clean project. We tried both AudioStreamIce and Audio Stream PCM. They work the same now.
Could you, please, help us out?
unity - 2022.3.37f1
xcode - 15.4
mac os - Sonoma 14.3.1
iphone 12 pro max - 17.5.1

You can see the video down below.

Hi, what do you mean by clean project please ?
Can you reproduce this with clean Unity project - as in no assets used, just empty project + scene + one script
(e.g. something like

void OnGUI()
{
    GUILayout.Button("Click Test");
)

)
I would like to rule out any current Unity bug/s, if any
/ – I would do this myself first anyway, but am in the middle of some betas so it would be maybe faster - thanks !

Yes, we were testing in both an empty project and in our current one. This is how an empty project with the package included looks like
image (164)

Just an empty scene without the package works fine. You can see it on the video below

And here is how it looks like after importing the package

So, it looks like it’s not the issue with Unity, but with the plugin it seems

1 Like

@denischernitsyn please replace
UnityBatchPlayerLoop();
with
UnityPlayerLoop();
in AudioStreamIceAppController.mm, line ~134 ( in AudioStreamIce/Plugins/iOS folder )

it’s a not really nice hack for now, but it works for these specific Unity versions
Unity will have to fix the intended call (UnityBatchPlayerLoop()) at some point

Thanks very much for the report; lmk if the fix worked