OpenPA 1.0.0

dotnet add package OpenPA --version 1.0.0
NuGet\Install-Package OpenPA -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenPA" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OpenPA --version 1.0.0
#r "nuget: OpenPA, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OpenPA as a Cake Addin
#addin nuget:?package=OpenPA&version=1.0.0

// Install OpenPA as a Cake Tool
#tool nuget:?package=OpenPA&version=1.0.0

Here is a simple example using OpenPA to play sound data on the local PulseAudio server.

// Just requires the following usings
using System;
using System.Threading.Tasks;
using OpenPA;
using OpenPA.Enums;

// Somewhere in your Program class
static async Task Play()
{
    PulseAudio.Init();

    PAContext context = new(MainLoop.Instance, "TestApp");
    bool connected = await context.ConnectAsync(null);

    if (!connected)
    {
        MainLoop.Instance.Stop();
        MainLoop.Instance.Dispose();
        return;
    }

    ServerInfo? serverInfo = await context.GetServerInfoAsync();

    string? sinkName = serverInfo?.DefaultSinkName;

    if (!String.IsNullOrWhiteSpace(sinkName))
    {
        SampleSpec sampleSpec = new()
        {
            Channels = 1,
            Format = SampleFormat.S16LE,
            Rate = 44100,
        };

        AudioStream audioStream = AudioStream.CreateMonoStream(context, "MyAudioStream", sampleSpec);
        audioStream.SetStateCallback((stream) => Console.WriteLine("Stream created."));
        audioStream.SetStartedCallback((stream) => Console.WriteLine("Started."));
        await audioStream.ConnectPlaybackAsync(sinkName, null, StreamFlags.NOFLAGS);

        byte[] buffer = System.IO.File.ReadAllBytes("sounds.bin");

        AudioBuffer? audioBuffer = audioStream.BeginWrite((uint)buffer.Length);
        if (audioBuffer != null)
        {
            audioBuffer.Copy(buffer);
            audioStream.Write(audioBuffer);
            await audioStream.DrainAsync();
        }

        audioStream.Disconnect();
        audioStream.Dispose();
    }
    context.Disconnect();
    context.Dispose();

    MainLoop.Instance.Stop();
    MainLoop.Instance.Dispose();
}
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 773 7/30/2021