仿【知乎】tabBar点击时有声音特效

版本:swift3.0

声音类型:wav
调用方法: {
依赖库: AudioToolbox

   //soundID给文件一个ID,用来确定调用那个音频文件
   var soundID:SystemSoundID = 0
   //将ZH_TS.wav文件拖入工程中,通过bundle导入
    let soundPath = Bundle.main.path(forResource: "ZH_TS", ofType: "wav")
    //解包,防止崩溃soundPath是可选型
    if soundPath == nil {
        print("无效的wav声音文件")
    }else{
   //将音频文件转换成URL
    let baseURL = NSURL(fileURLWithPath: soundPath!)
    //注册:将URL和soundID传给播放器
    AudioServicesCreateSystemSoundID(baseURL, &soundID)
    //播放
    AudioServicesPlaySystemSound(soundID)           

}

声音类型:m4a
调用方法: {
依赖库: AVFoundation

      var player = AVAudioPlayer() //这一定要定义成全局变量
      do {      //AVAudioPlayer会抛出异常,采用do-catch操作
    let soundPath = Bundle.main.path(forResource:           "ZH_FollowClick", ofType: "m4a")
        if soundPath == nil {
            print("此m4a文件无效")
        }else{
     //生成data对象
      let data = NSData.init(contentsOfFile: soundPath!)
      player = try AVAudioPlayer.init(data: data! as Data)
      player.numberOfLoops = 1
      player.volume = 1.0
      player.play()     
        }
    }
     catch{
        print("error:\(error)")
        }    

}

【知乎tabBar点击后嘟嘟嘟的响实现方法】:
调用tabBarcontroller的方法:
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
在此方法中 调用你想用的声音文件
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 「我是來換點卡的。」「啊?」男人抬起頭,努力想要聚焦似得看著我。他瞇縫著眼,本就不高的身材顯得更加渺小。他面前低矮...
    李翊譞阅读 2,555评论 0 1
  • 很喜欢”我是来搞笑的”专题,一入简书就被它吸引过去了,我自己也写了一些自以为搞笑但没几个人看的文章。哈哈,都...
    糊涂印象阅读 3,034评论 0 0
  • 挖小苗·锄地 我十二、三岁时,因为父亲在外面当八路军,家里没人干农知,经常和哥哥一起跟着母亲到地里干农活,记得最清...
    零星往事阅读 3,550评论 0 0
  • 早晨一睁眼,就知道昨夜喝醉了,喝的断片了,不知道自己怎么回的家,身体从里到外的不舒服,难受!但是不后悔! 昨夜请了...
    名杨阅读 1,924评论 2 0
  • 文/小残夜半凉 你慢慢摇 我缓缓流 流进万家灯火 替你熄灭蜡烛 我粉饰了整个街区 激起了工厂里的呐喊 窗户外看小两...
    骑马上岸的人阅读 2,047评论 4 6