SwiftySound

CocoaPods License CocoaPods CocoaPods Platforms Carthage Compatible SPM ready codebeat

概述

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)")
}
如果声音被停止、中断或发生播放错误,则不会调用回调。

特性

要求

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

安装

使用 CocoaPods 安装

CocoaPods 是一个依赖管理器,可以自动化和简化在你的项目中使用第三方库的过程。 有关更多详细信息,请参阅 入门 部分。

Podfile

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

使用 Carthage 安装

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

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

Cartfile

github "adamcichy/SwiftySound"

使用 Swift Package Manager 安装

Swift Package Manager 是一个用于管理 Swift 代码分发的工具。 只需将此仓库的 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 许可证 下发布。