Add OpenAL Soft library for Android
Summary of feature
Currently OpenAL Soft library is not compiled for Android, and trying to use it throws an FileNotFoundException.
Does this have a proposal?
No
Will only be adding this for .NET 6 as backporting to Xamarin would be a lot of maintenance burden.
Low priority, won't make it into 2.9.
Any news on that? Currently Silk.net 2.13.0 throws a NullReferenceException when calling AL.GetApi(true) or AL.GetApi(false):
at Silk.NET.Core.Loader.DefaultPathResolver.GetAllRuntimeIds(String currentRid, DependencyContext ctx)
at Silk.NET.Core.Loader.DefaultPathResolver.TryLocateNativeAssetInRuntimesFolder(String name, String baseFolder, String& result)
at Silk.NET.Core.Loader.DefaultPathResolver.CoreEnumeratePossibleLibraryLoadTargets(String name, Boolean noLinuxTraverse)+MoveNext()
at Silk.NET.Core.Loader.LibraryLoader.LoadWithResolver(String name, PathResolver pathResolver)
at Silk.NET.Core.Loader.LibraryLoader.TryLoadNativeLibrary(String[] names, PathResolver pathResolver, IntPtr& result)
at Silk.NET.Core.Loader.LibraryLoader.TryLoadNativeLibrary(String name, PathResolver pathResolver, IntPtr& result)
at Silk.NET.Core.Loader.LibraryLoader.LoadNativeLibrary(String name, PathResolver pathResolver)
at Silk.NET.Core.Loader.UnmanagedLibrary..ctor(String name, LibraryLoader loader, PathResolver pathResolver)
at Silk.NET.Core.Loader.UnmanagedLibrary..ctor(String name)
at Silk.NET.Core.Contexts.DefaultNativeContext..ctor(String name)
at Silk.NET.OpenAL.AL.CreateDefaultContext(String n)
at Silk.NET.OpenAL.AL.GetApi(Boolean soft)
at Ambermoon.Audio.OpenAL.AudioOutput..ctor(Int32 channels, Int32 sampleRate)
Ok with a valid RID in the csproj, the exception is gone. It just won't find the .so file now. :)
Current progress:
- @roeyskoe did some work to standardize the build process for native libraries
- To my knowledge, Android does not respect the runtimes folder.
- As such, we'll need someone (community) to create a gradle project for producing an
aarfor this.
We have the SilkDroid gradle project to go off, but beyond that this is a large task full of a lot of figuring out.
The Silk.NET team at this time don't have any real priority on this issue due to low demand and time constraints thus it is a community issue (help wanted!)
Ok thanks for the heads-up. Maybe this will help: https://github.com/sgothel/openal-soft/blob/master/Android.md
Can't tell if I will have the time for it either.
I already have gotten OpenAL to build for Android, but have not yet have time to research how the required(?) aar could be done.
I could actually open a pr for the OpenAL native builds, even without Android support.
Nevermind I just used the AudioTrack class for Android which works quite well. :)