SwiftyMusic
使用 AVFoundation 处理音乐播放的 Swift 辅助工具。
要求
- iOS 11.4+
- Swift 5.0+
安装
Cocoa Pods
Cocoa Pods 是 Cocoa 项目的依赖管理器。只需将以下行添加到您的 pod 文件中即可安装 pod。
pod 'SwiftyMusic'
Swift 包管理器
Swift 包管理器是一个用于自动化分发 Swift 代码的工具,并与 Swift 编译器集成。
要将 Swift 包添加到项目中,只需在 Xcode 中打开您的项目,然后点击 File > Swift Packages > Add Package Dependency。然后输入 https://github.com/crashoverride777/swifty-music.git
作为存储库 URL,并完成设置向导。
或者,如果您有一个需要添加 SwiftyMusic 作为依赖项的 Swift 包,只需将其添加到 Package.swift 的 dependencies 值即可。
dependencies: [
.package(url: "https://github.com/crashoverride777/swifty-music.git", from: "4.4.0")
]
手工方式
或者,您可以将 Sources
文件夹及其包含的文件拖放到您的项目中。
用法
- 将音乐轨道添加到您的项目中。
SwiftyMusic 支持以下文件格式:mp3, wav, aac, ac3, m4a, caf
- 如果您通过 CocoaPods 或 Swift 包管理器安装,请将导入语句添加到您的 .swift 文件中。
import SwiftyMusic
- 在任何地方创建
SwiftyMusicFileName
的扩展,以便添加您将要使用的音乐文件名。这些名称必须与实际的音乐文件名相同。
extension SwiftyMusicFileName {
static let menu = SwiftyMusicFileName("MenuMusic")
static let game = SwiftyMusicFileName("GameMusic")
static var all: [SwiftyMusicFileName] = [.menu, .game]
}
- 然后,在应用启动时立即设置帮助器。
SwiftyMusic.shared.setup(withFileNames: SwiftyMusicFileName.all)
- 要播放音乐,请调用具有您上面创建的对应音乐 URL 的 play 方法。这将自动暂停之前播放的音乐。
SwiftyMusic.shared.play(.menu)
SwiftyMusic.shared.play(.game)
- 暂停音乐
SwiftyMusic.shared.pause()
- 恢复暂停的音乐
SwiftyMusic.shared.resume()
- 调整音量
SwiftyMusic.shared.setVolume(to: 0.5)
- 停止并重置所有音乐播放器
SwiftyMusic.shared.reset()
- 静音
SwiftyMusic.shared.setMuted(true)
if SwiftyMusic.shared.isMuted {
// music is muted, show unmute button
} else {
// music not muted, show mute button
}
测试
要测试 SwiftyMusic 的类,您可以注入 SwiftyMusicType
协议
class SomeClass {
private let swiftyMusic: SwiftyMusicType
init(swiftyMusic: SwiftyMusicType = SwiftyMusic.shared) {
self.swiftyMusic = swiftyMusic
}
}
并提供测试时的模拟实现。
class MockSwiftyMusic { }
extension MockSwiftyMusic: SwiftyMusicType { ... }
class SomeClassTests {
func test() {
let sut = SomeClass(swiftyMusic: MockSwiftyMusic())
}
}