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

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

概述

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

目录
相关文章
|
6月前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
299 1
|
Swift
swift之图片浏览器
swift之图片浏览器
390 0
swift之图片浏览器
Swift5.1—协议合成
Swift5.1—协议合成
173 0
|
Java Swift iOS开发
Swift解读专题一——Swift2.2语言预览(二)
Swift解读专题一——Swift2.2语言预览
152 0
|
Swift 机器学习/深度学习 C语言
swift4.1 系统学习八
// // main.swift // swift08 // // Created by iOS on 2018/9/28. // Copyright © 2018年 weiman. All rights reserved. // import Foundation //swift学习笔记8 /* 1. for-in 循环 swift中使用for-in循环还是很频繁的。
896 0
|
Swift
swift4.1 系统学习七
import Foundation //swift学习笔记07 /* 控制流语句 学过任何一种语言的小伙伴们都对控制流语句不陌生,几乎每一天都在用。 控制流分类: 1.分支 2.循环 */ /* do语句块 这个语句块在我之前的学习中一直在使用,是一种在学习中很方便的写代码的方式。
1021 0
|
索引 Swift 自然语言处理
swift4.1 系统学习六
swift学习笔记6 字符和字符串 在swift中,String类型也是结构体,属于值类型,而不是引用类型。这一点,与OC是不一样的。 // // main.
847 0
|
存储 Swift iOS开发
swift4.1 系统学习四
// // main.swift // swift04 // // Created by iOS on 2018/9/21. // Copyright © 2018年 weiman.
1066 0
|
索引 机器学习/深度学习 Swift
swift4.1 系统学习三
// // main.swift // swift03 // // Created by iOS on 2018/9/21. // Copyright © 2018年 weiman. All rights reserved. // import Foundation /* swift学习笔记4 */ // 1.元组 /* 元组是swift中一种复合类型。
848 0
|
Swift iOS开发 MacOS
swift4.1 系统学习一
/* swift学习笔记1 简介 swift出现的目的:为了简化macOS和iOS开发 特点: 1.开源 2.跨平台 3.面向对象的编程语言 4.编程范式丰富:面向过程,面向对象,函数式编程 5.安全性 */ /* swift学习笔记2 基本类型体系 1.枚举(enum) 2.结构体(struct) 3.类(class) 4.协议(protocol) 5.函数(function) 6.复合类型:元组(tuple) 注意:这里并没有像别的语言那样,把基本数据类型和用户自定义数据类型分类。
1082 0