SwiftAudioKit 是一个围绕 AVPlayer
构建的强大且功能丰富的封装器,旨在简化 iOS、tvOS、macOS 和 watchOS 上的音频播放。
SwiftAudioKit 只能通过 Swift Package Manager (SPM) 获取。 要将其集成到您的项目中,请按照以下步骤操作
https://github.com/diokaratzas/swift-audio-kit
要将 SwiftAudioKit 与您的软件包一起使用,首先将其添加为依赖项
let package = Package(
// name, platforms, products, etc.
dependencies: [
// other dependencies
.package(url: "https://github.com/diokaratzas/swift-audio-kit", from: "1.0.0"),
],
targets: [
// targets
]
)
请参阅软件包文档 以获取更详细的用法说明。
这是一个快速入门 SwiftAudioKit 的示例
let delegate: AudioPlayerDelegate = ...
let player = AudioPlayer()
player.delegate = delegate
let item = AudioItem(mediumQualitySoundURL: track.streamURL)
player.playItem(item)
SwiftAudioKit 使用委托来通知状态更改和其他事件。
当播放器的状态改变时,会调用此方法
func audioPlayer(_ audioPlayer: AudioPlayer, didChangeStateFrom from: AudioPlayerState, toState to: AudioPlayerState)
找到当前项目的持续时间时
func audioPlayer(_ audioPlayer: AudioPlayer, didFindDuration duration: TimeInterval, forItem item: AudioItem)
定期调用此方法以更新播放进度
func audioPlayer(_ audioPlayer: AudioPlayer, didUpdateProgressionToTime time: TimeInterval, percentageRead: Float)
percentageRead
是一个介于 0 和 100 之间的 Float
值,非常适合更新 UISlider
。
当新的音频项目开始播放时,会调用此方法
func audioPlayer(_ audioPlayer: AudioPlayer, willStartPlayingItem item: AudioItem)
要通过控制中心或锁定屏幕处理媒体控件
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
application.beginReceivingRemoteControlEvents()
return true
}
// In your UIResponder (or AppDelegate):
override func remoteControlReceived(with event: UIEvent?) {
if let event = event {
yourPlayer.remoteControlReceived(with: event)
}
}
欢迎贡献! 要贡献
git checkout -b my-new-feature
。git commit -am 'Add some feature'
。git push origin my-new-feature
。本项目根据 MIT 许可证获得许可。 有关更多信息,请参见 LICENSE 文件。
本项目基于 AudioPlayer 的原始版本,作者为 Kevin Delannoy。 特别感谢 Kevin 的基础工作,这对 SwiftAudioKit 的开发起到了重要作用。