SwiftLAME is a lightweight Swift wrapper around the open-source LAME project for converting audio files to MP3.
SwiftLAME has been tested on macOS 12+, and iOS 15+. Although older versions are likely supported. Consider contributing a change to Package.swift if you find this to be the case.
Add the dependency to your Package.swift
file:
dependencies: [
.package(url: "https://github.com/hidden-spectrum/swiftlame", .upToNextMajor(from: "0.1.0")),
]
import SwiftLAME
let progress = Progress()
let lameEncoder = try SwiftLameEncoder(
sourceUrl: URL("file:///path/to/source/file.wav"),
configuration: .init(
sampleRate: .constant(44100)
bitrateMode: .constant(320)
quality: .mp3Best
),
destinationUrl: URL("file:///path/to/destination/file.wav"),
progress: progress // optional
)
try await lameEncoder.encode(priority: .userInitiated)
SwiftLAME supports converting the following codecs:
- WAV
- AIFF
- Raw PCM
- SwiftLAME is still in early alpha. There may be bugs or missing features.
SwiftLAME, like the LAME project, is distributed under the LGPL License.