PackageTrack
Sign in Get early access

audio_flutter_darwin

Darwin implementation of audio_flutter capture and PCM playback.

0.2.0 kshdotdev/audio-kit-dart

What this package is like to depend on

Last release 18 days ago

06 Aug 2026

Too new to tell

only 2 dated releases

Nearly every release is documented

notes for 2 of 2 stable releases

Nothing withdrawn

no release was ever pulled

0 months old

2 releases · first in 2026

2 releases in the last 12 months

see the full history below

Release timeline

2 releases · Jul 2026 to Aug 2026
Release Pre-release

Releases

latest 2
  1. 0.2.0 06 Aug 2026
    Release notes
    • Implement microphonePermissionStatus() and requestMicrophonePermission() over AVCaptureDevice.authorizationStatus(for: .audio) and requestAccess. The request prompts only from notDetermined; a denied or restricted status is reported unchanged rather than re-prompting, which the system would not show anyway.

    • Watch kAudioHardwarePropertyDefaultOutputDevice while a system capture is running. The tap aggregate is clocked from whichever output device was default when it was built, so switching output (speakers to AirPods, HDMI unplugged) left it clocked by a device the user no longer routes to — or one that vanished, which stops the IO proc silently. The listener rebuilds the chain against the new default and reports the break as AudioDiscontinuityReason.sourceRestart on the next frame. Tap-only aggregates (no clock device) and notifications that resolve to the same device do not rebuild.

    • Carry a discontinuity reason on native frames, so a rebuild is no longer indistinguishable from a mailbox overflow.

    • Give the private aggregate device a recognizable UID prefix (audio-flutter.tap.) instead of a bare UUID; the human-readable device name is unchanged. Add cleanupOrphanedAggregateDevices(), which destroys devices carrying that prefix that no live session in this process owns — the ones a kill -9 or a crash leaves in the device tree.

    • Widen the capture statistics behind the health stream: peak amplitude, RMS, non-zero-buffer percentage, hardware render cycles, and time to first audio, for both microphone and system capture. The emission cadence is unchanged — these ride the health events that already existed.

    • Clock the macOS system-audio tap aggregate off the current default output device (kAudioAggregateDeviceMainSubDeviceKey + kAudioAggregateDeviceClockDeviceKey), which fixes hardware-dependent silent captures where a tap-only aggregate was never clocked. Falls back to the previous tap-only aggregate when there is no default output device or the HAL rejects the clocked composition.

    • Hold a refcounted ProcessInfo.beginActivity assertion (macOS only) while any microphone or system-audio capture session is running, so an unfocused app no longer buffers and bursts capture callbacks under App Nap.

    • Document the system-audio permission preflight as advisory: the macOS grant is enforced at delivery, so it can report success for a tap that will deliver only silence. Capture health remains the authoritative signal.

    • Lower the Swift package platform floor from macOS 14 to macOS 12. The plugin shell, microphone capture, and playback run on macOS 12; process-tap system audio stays runtime-gated to macOS 14.4 behind @available guards, so host applications can launch on macOS 12/13 and see system capture reported as unsupported there instead of failing to link.

    • Add a Swift test target covering the darwin support layer.

    Open source →
  2. 0.1.0 27 Jul 2026
    Release notes
    • Initial public release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive