Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,8 @@ ios/Frameworks/
ios/Runner.xcworkspace/xcshareddata/
example/ios/Flutter/flutter_export_environment.sh
audio_waveforms.iml
pubspec.lock
pubspec.lock

# Swift Package Manager
**/.build/
**/.swiftpm/
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## 2.1.0 (#unreleased)

- Feature [#468](https://github.com/SimformSolutionsPvtLtd/audio_waveforms/pull/468) - Add macOS support
- **BREAKING:** Feature [#492](https://github.com/SimformSolutionsPvtLtd/audio_waveforms/issues/492) - Add Swift Package Manager support for iOS and macOS. Requires Flutter `>=3.41.0` and Dart `^3.11.0` (`FlutterFramework` Swift package).

## 2.0.2

Expand Down
2 changes: 1 addition & 1 deletion example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: Demonstrates how to use the audio_waveforms plugin.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

environment:
sdk: ">=3.0.0 <4.0.0"
sdk: ^3.11.0

# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
Expand Down
4 changes: 3 additions & 1 deletion ios/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,6 @@ Icon?

/Flutter/Generated.xcconfig
/Flutter/ephemeral/
/Flutter/flutter_export_environment.sh
/Flutter/flutter_export_environment.sh
.build/
.swiftpm/
4 changes: 0 additions & 4 deletions ios/Classes/AudioWaveformsPlugin.h

This file was deleted.

15 changes: 0 additions & 15 deletions ios/Classes/AudioWaveformsPlugin.m

This file was deleted.

4 changes: 2 additions & 2 deletions ios/audio_waveforms.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ A new Flutter project.
s.license = { :file => '../LICENSE' }
s.author = { 'Your Company' => 'email@example.com' }
s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
s.source_files = 'audio_waveforms/Sources/audio_waveforms/**/*.swift'
s.dependency 'Flutter'
s.platform = :ios, '8.0'
s.platform = :ios, '13.0'

# Flutter.framework does not contain a i386 slice.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
Expand Down
24 changes: 24 additions & 0 deletions ios/audio_waveforms/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// swift-tools-version: 5.9
import PackageDescription

let package = Package(
name: "audio_waveforms",
platforms: [
.iOS("13.0"),
],
products: [
.library(name: "audio-waveforms", targets: ["audio_waveforms"]),
],
dependencies: [
.package(name: "FlutterFramework", path: "../FlutterFramework"),
],
targets: [
.target(
name: "audio_waveforms",
dependencies: [
.product(name: "FlutterFramework", package: "FlutterFramework"),
],
path: "Sources/audio_waveforms"
),
]
)
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Flutter
import Foundation

import AVKit
Expand All @@ -9,12 +10,12 @@ class AudioPlayer: NSObject, AVAudioPlayerDelegate {
private var player: AVAudioPlayer?
private var finishMode:FinishMode = FinishMode.stop
private var updateFrequency = 200
var plugin: SwiftAudioWaveformsPlugin
var plugin: AudioWaveformsPlugin
var playerKey: String
var flutterChannel: FlutterMethodChannel


init(plugin: SwiftAudioWaveformsPlugin, playerKey: String, channel: FlutterMethodChannel) {
init(plugin: AudioWaveformsPlugin, playerKey: String, channel: FlutterMethodChannel) {
self.plugin = plugin
self.playerKey = playerKey
flutterChannel = channel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Flutter
import AVFoundation
import Accelerate

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Flutter
import UIKit

public class SwiftAudioWaveformsPlugin: NSObject, FlutterPlugin {
public class AudioWaveformsPlugin: NSObject, FlutterPlugin {

let audioRecorder: AudioRecorder
var audioPlayers = [String: AudioPlayer]()
Expand All @@ -20,7 +20,7 @@ public class SwiftAudioWaveformsPlugin: NSObject, FlutterPlugin {
}
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: Constants.methodChannelName, binaryMessenger: registrar.messenger())
let instance = SwiftAudioWaveformsPlugin(registrar: registrar, flutterChannel: channel)
let instance = AudioWaveformsPlugin(registrar: registrar, flutterChannel: channel)
registrar.addMethodCallDelegate(instance, channel: channel)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
// Created by Ujas Majithiya on 10/04/25.
//

import Flutter
import Foundation
import AVFAudio
import Accelerate
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Flutter
import Accelerate
import AVFoundation

Expand Down
2 changes: 2 additions & 0 deletions macos/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,5 @@ Icon?
/Flutter/Generated.xcconfig
/Flutter/ephemeral/
/Flutter/flutter_export_environment.sh
.build/
.swiftpm/
4 changes: 0 additions & 4 deletions macos/Classes/AudioWaveformsPlugin.h

This file was deleted.

15 changes: 0 additions & 15 deletions macos/Classes/AudioWaveformsPlugin.m

This file was deleted.

4 changes: 2 additions & 2 deletions macos/audio_waveforms.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ A Flutter plugin that allows you to generate waveforms while recording audio or
s.license = { :file => '../LICENSE' }
s.author = { 'Simform Solutions' => 'developer@simform.com' }
s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
s.source_files = 'audio_waveforms/Sources/audio_waveforms/**/*.swift'
s.dependency 'FlutterMacOS'
s.platform = :osx, '10.14'
s.platform = :osx, '10.15'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
s.swift_version = '5.0'
end
24 changes: 24 additions & 0 deletions macos/audio_waveforms/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// swift-tools-version: 5.9
import PackageDescription

let package = Package(
name: "audio_waveforms",
platforms: [
.macOS("10.15"),
],
products: [
.library(name: "audio-waveforms", targets: ["audio_waveforms"]),
],
dependencies: [
.package(name: "FlutterFramework", path: "../FlutterFramework"),
],
targets: [
.target(
name: "audio_waveforms",
dependencies: [
.product(name: "FlutterFramework", package: "FlutterFramework"),
],
path: "Sources/audio_waveforms"
),
]
)
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import FlutterMacOS
import AVFoundation
import Accelerate

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import FlutterMacOS
import AVKit
import Foundation

Expand All @@ -10,7 +11,7 @@ class AudioPlayer: NSObject, AVAudioPlayerDelegate {
private var player: AVAudioPlayer?
private var finishMode: FinishMode = FinishMode.stop
private var updateFrequency = 200
var plugin: SwiftAudioWaveformsPlugin
var plugin: AudioWaveformsPlugin
var playerKey: String
var flutterChannel: FlutterMethodChannel

Expand All @@ -20,7 +21,7 @@ class AudioPlayer: NSObject, AVAudioPlayerDelegate {
/// - playerKey: Unique identifier for this player
/// - channel: Flutter method channel for callbacks
init(
plugin: SwiftAudioWaveformsPlugin, playerKey: String,
plugin: AudioWaveformsPlugin, playerKey: String,
channel: FlutterMethodChannel
) {
self.plugin = plugin
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import FlutterMacOS
import AVFoundation
import Accelerate

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import FlutterMacOS

/// Main plugin class for audio_waveforms on macOS.
/// Manages recording, playback, and waveform extraction functionality.
public class SwiftAudioWaveformsPlugin: NSObject, FlutterPlugin {
public class AudioWaveformsPlugin: NSObject, FlutterPlugin {

let audioRecorder: AudioRecorder
var audioPlayers = [String: AudioPlayer]()
Expand Down Expand Up @@ -32,7 +32,7 @@ public class SwiftAudioWaveformsPlugin: NSObject, FlutterPlugin {
let channel = FlutterMethodChannel(
name: Constants.methodChannelName,
binaryMessenger: registrar.messenger)
let instance = SwiftAudioWaveformsPlugin(
let instance = AudioWaveformsPlugin(
registrar: registrar, flutterChannel: channel)
registrar.addMethodCallDelegate(instance, channel: channel)
}
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import FlutterMacOS
import AVFoundation
import Accelerate

Expand Down
4 changes: 2 additions & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ homepage: https://github.com/SimformSolutionsPvtLtd/audio_waveforms
issue_tracker: https://github.com/SimformSolutionsPvtLtd/audio_waveforms/issues

environment:
sdk: ">=3.0.0 <4.0.0"
flutter: ">=3.10.0"
sdk: ^3.11.0
flutter: ">=3.41.0"

dependencies:
flutter:
Expand Down