iOS开发 本地音效播放 SoundManager

🍎官方提供了AudioToolbox框架,可以用来播放短音效。
① 播放的时间不能超过30秒
② 声音文件须放到设备的本地文件夹目录下

比如在一些交互中,要使用不同音效时候,可以封装成一个类,方便调用。

SoundManager
SoundManager.swift
import UIKit
import AudioToolbox //导入框架

class SoundManager {
    
    var soundId:SystemSoundID = 0

    enum SoundType {
        case doo, re, mi, fa, so, la, se
    }

    func loadaudioFile(soundType: SoundType) {
        var sound = (name:"error", type:"wav")
        switch soundType {
        case .doo:
            sound = (name:"doo", type:"wav")
        case .re:
            sound = (name:"re", type:"wav")
        case .mi:
            sound = (name:"mi", type:"mp3")
        case .fa:
            sound = (name:"fa", type:"wav")
        case .so:
            sound = (name:"so", type:"wav")
        case .la:
            sound = (name:"la", type:"wav")
        case .se:
            sound = (name:"se", type:"wav")
        }
        let soundUrl =  NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource(sound.name, ofType: sound.type)!)
        AudioServicesCreateSystemSoundID(soundUrl, &soundId)  
    }
    
    func playSound() {
        AudioServicesPlaySystemSound(soundId)
        // 震动
        //AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
    }
}

使用:
    let sound = SoundManager() //跟哥们联系
    sound.loadaudioFile(SoundManager.SoundType.doo) //取到指定音频
    sound.playSound() //播放音频
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 岩羊的精灵阅读 270评论 0 0
  • 今年,我24了,没谈过一场恋爱,却真真感受了爱的刻骨铭心,过去的十年,过去的太快,我只有以粗劣的文字来回忆和记录,...
    Slavar阅读 348评论 5 1
  • 产品测试和上线后往往会遇到一些bug,开发者需要定位到异常的代码这个时候就要捕获异常。 可以通过写一个类Crash...
    高高叔叔阅读 625评论 7 2
  • 在破旧泛黄的站台上 怔怔地望着远去的背影 渐行渐远 泪,已凝固在春天的树梢 记忆中留恋的残香被轻柔的春风不舍地带走...
    浅谈文学梦阅读 203评论 0 2