如何用SFBAudioEngine 3行代码在iOS/macOS上播放音频文件(附Swift代码)
【免费下载链接】SFBAudioEngineA powerhouse of audio functionality for macOS, iOS, and tvOS.项目地址: https://gitcode.com/gh_mirrors/sf/SFBAudioEngine
SFBAudioEngine 是一款面向 macOS、iOS 和 tvOS 的强大开源音频框架,用 Swift 播放音频文件仅需 3 行代码。本文将教你如何快速集成 SFBAudioEngine,并附上可直接运行的 Swift 播放代码,帮助你在 iOS/macOS 上轻松实现音频播放功能。
SFBAudioEngine 是什么?
SFBAudioEngine 是一个集音频解码、播放、编码、格式转换、属性读取与元数据编辑于一体的音频引擎,同时支持 Swift 和 Objective-C。它最让人惊喜的一点是:播放音频文件真的只需要 3 行代码,无需配置复杂的AVAudioEngine处理图。
快速安装:Swift Package Manager 集成步骤
SFBAudioEngine 支持 iOS 15.0+、macOS 11.0+、tvOS 15.0+,通过 Swift Package Manager(SPM)集成非常简单。
一键安装步骤:
- 在 Xcode 中打开项目,进入
File > Add Package Dependencies - 输入包地址添加依赖
- 等待解析完成后,在需要使用的地方
import SFBAudioEngine
3 行代码播放音频文件(Swift 代码)
播放音频文件的核心代码,只需三步:
import SFBAudioEngine let player = AudioPlayer() let url = URL(fileURLWithPath: "example.flac") try? player.play(url)没错,就这么简单!AudioPlayer基于AVAudioEngine处理图实现播放,开箱即用,无需任何额外配置。🎵
注意:目前
play(_:)仅支持文件 URL(file URL)。
播放控制与状态监听
除了播放,SFBAudioEngine 还提供了完整的播放控制能力:
player.pause() // 暂停 player.resume() // 恢复 player.stop() // 停止 player.togglePlayPause() // 播放/暂停切换 player.seek(time: 30) // 跳到 30 秒处同时支持队列播放,实现无缝(gapless)衔接:
try? player.enqueue(URL(fileURLWithPath: "track2.flac"))读取音频信息与元数据
播放之外,读取音频属性和元数据同样简单,一行代码即可:
if let audioFile = try? AudioFile(readingPropertiesAndMetadataFrom: url) { let sampleRate = audioFile.properties.sampleRate let title = audioFile.metadata.title let artist = audioFile.metadata.artist }一行代码完成格式转换
想把 WAVE 转成 FLAC?SFBAudioEngine 同样只需 3 行代码,输出格式会根据文件扩展名自动推断:
let inputURL = URL(fileURLWithPath: "music.wav") let outputURL = URL(fileURLWithPath: "music.flac") try AudioConverter.convert(inputURL, to: outputURL)支持的音频格式
SFBAudioEngine 支持绝大多数音频格式,除了 Core Audio 原生支持的格式外,还额外支持:
- 🎶 Ogg Speex / Ogg Vorbis / Ogg Opus
- 🎶 Monkey's Audio、Musepack、Shorten、True Audio、WavPack
- 🎶 libsndfile 支持的全部格式
- 🎶 DSD64 转 PCM、DSF/DSDIFF 解码及 DoP 传输
FLAC、Ogg Opus 和 MP3 虽然 Core Audio 原生支持,但 SFBAudioEngine 也提供了自己的编码器和解码器,确保最佳兼容性。
总结
SFBAudioEngine 让 iOS/macOS 音频开发变得异常简单:播放 3 行代码、读元数据 1 行代码、转格式 3 行代码。无论你是想快速播放 FLAC、Opus 等特殊格式,还是需要构建完整的音乐播放器,它都是值得一试的开源方案。核心播放能力由 AudioPlayer.swift 提供,底层实现位于 Player 目录,感兴趣的话可以直接阅读源码深入学习。🚀
【免费下载链接】SFBAudioEngineA powerhouse of audio functionality for macOS, iOS, and tvOS.项目地址: https://gitcode.com/gh_mirrors/sf/SFBAudioEngine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考