OpenPA 1.0.0

Install-Package OpenPA -Version 1.0.0
dotnet add package OpenPA --version 1.0.0
<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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: OpenPA, 1.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. 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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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();
}
  • 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 163 7/30/2021