audio_flutter 0.2.0
audio_flutter: ^0.2.0 copied to clipboard
Provider-neutral Flutter microphone, system-audio, and PCM playback.
Changelog #
0.2.0 #
-
Add
SystemAudioProcessSelector, a pure expansion of a target app set over aFlutterSystemAudio.listProcesses()snapshot. Tapping Teams, Chrome, or Safari by their main process ID captured nothing, because those apps render audio in helper processes or in shared browser-engine processes under another bundle namespace. The prefix tables (browsers' external media processes, Electron helper suffixes, the Teams family) are public const and replaceable through the constructor. -
Add
FlutterMicrophonePermission(status()/request()) andAudioMicrophonePermissionStatus.FlutterAudioCaptureSource.prepare()now fails a microphone capture with the typedmicrophone_permission_deniedfailure when access is denied or restricted, instead of starting an engine that delivers only zeroes. An undetermined status still reaches the system prompt, and a platform without a permission gate is never blocked. -
Add
FlutterSystemAudio.cleanupOrphanedCaptureDevices(), which reclaims private capture devices leaked by a process that died mid-capture. Documented as an app-start call. -
Report
AudioDiscontinuityReason.sourceRestarton frames whose native capture chain was rebuilt (an output-device switch, a helper process appearing). Every native gap used to arrive asdroppedFrames; a restart that lost no frames now breaks continuity too, because the audio after it is not a continuation of the audio before it. -
Widen
FlutterAudioCaptureHealthwithpeakAmplitude,rms,nonZeroFramePercent,renderCycles, andfirstAudioAtMillis. A singlereceivingAudiobool could not tell a quiet room from a dead tap. -
Document the mic-delay recipe in the README: how to derive the start skew between two captures from their first
AudioFrametimestamps andclockIds, for consumers such as mic-bleed dedup. -
Endorse
audio_flutter_linuxforlinuxandaudio_flutter_windowsforwindows. Both are declared underflutter.plugin.platformsasdefault_package, so a host app that depends only onaudio_fluttergets the platform implementation registered without naming it. The federated facade inlib/is unchanged: the new platforms arrive entirely through endorsement, not through new Dart API. -
Add
linuxandwindowsto the declaredplatforms. The package now advertises ios/linux/macos/windows. Capability is still per platform — system/process capture remains macOS-only. -
Add dependencies on
audio_flutter_linux: ^0.1.0andaudio_flutter_windows: ^0.1.0. Both packages are new because neither implementation has been published yet; this package cannot be re-released until they are live on pub.dev at a stable version and these constraints are widened to^0.1.0. -
Add
example/, a minimal capture and device-listing app for windows/linux/macos. It is the only place the native halves of the federated plugin are compiled at all — the desktop CI jobs build it, and the Windows C++ plugin's first-ever compile happens there. Its macOS deployment target is 14.0. -
Document in the README that Apple platforms still require the host app's
Info.plistmicrophone usage description; the permission API added in this release governs the grant, not the declaration.
0.1.0 #
- Initial public release.