一个简单的库,可让你轻松处理 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

目录
相关文章
|
Swift
swift之图片浏览器
swift之图片浏览器
407 0
swift之图片浏览器
|
Swift
Swift中获取系统语言
//en-US zh-HK zh-TW zh-Hans-US var lng:String { let userDefault = NSUserDefaults.
1123 0
Swift5.1—协议合成
Swift5.1—协议合成
183 0
|
Java Swift iOS开发
Swift解读专题一——Swift2.2语言预览(二)
Swift解读专题一——Swift2.2语言预览
158 0
|
XML 编解码 JSON
swift4.1 编解码
/* 本节来学习swift的编码、解码和串行化。 为什么需要编解码? 许多的编程任务涉及到通过网络发送数据、将数据保存到磁盘上,或是将数据提交到API以及 服务上。
1065 1
|
存储 编译器 Swift
17.Swift学习之类
类介绍 Swift虽然推荐面向协议编程,但其也是一门面向对象开发的语言 面向对象的基础是类,类产生了对象(类的实例) Swift中用class关键字定义类 定义语法 class 类名 { // 定义属性和方法 } 举例 class ...
998 0
|
Swift
swift4.1 系统学习七
import Foundation //swift学习笔记07 /* 控制流语句 学过任何一种语言的小伙伴们都对控制流语句不陌生,几乎每一天都在用。 控制流分类: 1.分支 2.循环 */ /* do语句块 这个语句块在我之前的学习中一直在使用,是一种在学习中很方便的写代码的方式。
1025 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循环还是很频繁的。
905 0
|
索引 Swift 自然语言处理
swift4.1 系统学习六
swift学习笔记6 字符和字符串 在swift中,String类型也是结构体,属于值类型,而不是引用类型。这一点,与OC是不一样的。 // // main.
854 0
|
存储 Swift iOS开发
swift4.1 系统学习四
// // main.swift // swift04 // // Created by iOS on 2018/9/21. // Copyright © 2018年 weiman.
1071 0

相关课程

更多