一个简单的库,可让你轻松处理 Swift 声音

803 阅读3分钟

「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

🌊 作者主页:海拥
🌊 作者简介:🏆CSDN全栈领域优质创作者、🥇HDZ核心组成员
🌊 粉丝福利:粉丝群 每周送六本书,不定期送各种小礼品

概述

SwiftySound 是一个简单的库,可让你轻松处理 Swift 声音。

静态方法

Sound.play(file: "dog.wav")
Sound.play(url: fileURL)

更高级的例子:

Sound.play(file: "dog", fileExtension: "wav", numberOfLoops: 2)

以上将播放声音三遍。

指定负数循环以无限循环连续播放声音:

Sound.play(file: "dog", fileExtension: "wav", numberOfLoops: -1)

停止当前播放声音:

Sound.stopAll()

启用/禁用所有声音:

Sound.enabled = true
Sound.enabled = false

Sound.enabled属性的值将在UserDefaults你的应用程序下次启动时自动保留并恢复。

更改声音类别。SwiftySound 提供了一种更改声音类别的简单方法:

Sound.category = .ambient

这会更改底层共享AVAudioSession实例的类别。默认值为SoundCategory.ambient。由于AVAudioSession体系结构的原因,此属性在 macOS 上不可用。

创建Sound类的实例

你还可以创建 Sound 类的实例并将其存储在应用程序中的某个位置。

let mySound = Sound(url: fileURL)
mySound.play()

创建实例有更多好处,例如可以调整音量和播放回调。

改变音量

你可以更改每个Sound实例的音量。

mySound.volume = 0.5

volume属性的值应该在 0.0 到 1.0 之间,其中 1.0 是最大值。

回调

你可以将回调传递给该play方法。它会在声音播放完毕后播放。对于循环声音,将在播放最后一个循环后调用一次回调。

mySound.play { completed in
    print("completed: (completed)")
}

如果声音停止、中断或播放错误,则不会调用回调。

特点

  • 播放单个声音
  • 循环
  • 无限循环
  • 同时多次播放相同的声音
  • 使用全局静态方法停止所有声音
  • 能够暂停和恢复
  • 调节音量
  • 回调
  • 启用/禁用所有声音的全局静态变量

要求

  • Swift 5
  • Xcode 10.2 或更高版本
  • iOS 8.0 或更高版本
  • tvOS 9.0 或更高版本
  • macOS 10.9 或更高版本

对于 Xcode 8 和 Swift 3 支持,请使用 SwiftySound 版本0.7.0。对于 Xcode 9 和 Swift 4 支持,请使用 SwiftySound 版本1.0.0

安装

使用 CocoaPods 安装

CocoaPods是一个依赖管理器,它自动化并简化了在项目中使用第三方库的过程。

Podfile

platform :ios, '8.0'
use_frameworks!
pod 'SwiftySound'

使用 Carthage 安装

Carthage是 Swift 和 Objective-C 的轻量级依赖管理器。它利用 CocoaTouch 模块并且比 CocoaPods 的侵入性更小。

要使用 carthage 安装,请按照Carthage上的说明进行操作

Cartfile

github "adamcichy/SwiftySound"

使用 Swift 包管理器安装

Swift Package Manager 是一个用于管理 Swift 代码分发的工具。只需将此 repo 的 url 添加到你的Package.swift文件中作为依赖项:

import PackageDescription

let package = Package(
    name: "YourPackage",
    dependencies: [
        .Package(url: "https://github.com/adamcichy/SwiftySound.git",
                 majorVersion: 0)
    ]
)

然后运行swift build并等待 SPM 安装 SwiftySound。

手动安装

Sound.swift文件放入你的项目中,链接AVFoundation.framework,就可以开始了。

执照

SwiftySound 是根据[MIT 许可证获得许可的。

GitHub

github.com/adamcichy/S…

写在最后的

作者立志打造一个拥有100个小游戏的摸鱼网站,更新进度:41/100

我已经写了很长一段时间的技术博客,并且主要通过掘金发表,这是我的一篇关于一个简单的库,可让你轻松处理 Swift 声音。我喜欢通过文章分享技术与快乐。你可以访问我的博客: juejin.cn/user/204034… 以了解更多信息。希望你们会喜欢!😊

💌 欢迎大家在评论区提出意见和建议!💌