美文网首页iOS Developer程序员
iOS 播放声音系列(一): 系统声音

iOS 播放声音系列(一): 系统声音

作者: DEREK_ZHOU | 来源:发表于2017-11-23 14:22 被阅读0次

原文链接

最近开发App时,需要用到声音服务。在查阅资料和文档后,发现iOS上播放声音有好几种方法。准备针对每种方法写一篇文章来详细说明。一来可以推动自己查阅文档教程来对声音播放进行深入了解,二来希望可以帮忙到有需要的人。

简介

iOS 播放声音有很多种方式,其中系统声音服务应该是最简单的了。但我们使用起来要小心,因为使用系统声音服务时会有一些限制

  • 声音不能超过30秒
  • 支持的文件格式有限,具体的说只有CAF、AIF和使用PCM或IMA/ADPCM数据的WAV文件。

三种类型

播放系统声音有三种类型:

  • 声音:播放一个声音文件。但是如果手机静音,用户什么也听不见。
  • 提醒:播放一个声音文件,如果手机设为静音或震动,这时会通过震动提醒用户。
  • 震动:震动手机,而不考虑其他设置。

具体代码实现

声音类型


import AudioToolbox

var soundID:SystemSoundID = 0

let path = Bundle.main.path(forResource: "msg", ofType: "wav")!
let url = URL(fileURLWithPath: path)

AudioServicesCreateSystemSoundID(url as CFURL, &soundID)
AudioServicesPlaySystemSound(soundID)

提醒类型

import AudioToolbox

var soundID:SystemSoundID = 0

let path = Bundle.main.path(forResource: "msg", ofType: "wav")!
let url = URL(fileURLWithPath: path)

AudioServicesCreateSystemSoundID(url as CFURL, &soundID)
AudioServicesPlayAlertSound(soundID)

震动类型

import AudioToolbox

let soundID = SystemSoundID(kSystemSoundID_Vibrate)
AudioServicesPlaySystemSound(soundID)

结束回调

AudioServicesAddSystemSoundCompletion(soundID, nil, nil, { (soundID, clientData) in
    print("End of playing voice.")
}, nil)

说再多,都不如一个Demo,GitHub地址请戳这里

总结

  • 记得import AudioToolbox系统库
  • 使用系统声音时要注意声音文件的一些限制
  • 系统声音服务有三种类型,它们之间有一些细小区别,使用时注意选择适合自己需求的类型
  • 如果你需要获取播放结束时的回调接口,使用AudioServicesAddSystemSoundCompletion,三种类型都支持结束回调

相关文章

  • iOS 播放声音系列(一): 系统声音

    原文链接 最近开发App时,需要用到声音服务。在查阅资料和文档后,发现iOS上播放声音有好几种方法。准备针对每种方...

  • iOS 音频

    iOSSystemSoundsLibrary 列出和播放iOS系统声音~ novocaine 一个声音库 录音...

  • iOS播放系统声音

    iOS播放系统声音 简介 iOS 播放声音有很多种方式,其中系统声音服务应该是最简单的了。但我们使用起来要小心,因...

  • IOS 播放系统声音

    #import - (void)viewDidLoad { [super viewDidLoad]; [self ...

  • ios播放系统声音

    系统铃声

  • iOS 播放简短声音&长音频

    播放短音频 在iOS中,有的时候需要播放很简短的声音文件,比如系统声音等,我们需要使用到下面的方式来播放声音: /...

  • iOS音频播放

    ·iOS系统中的音频播放方式·AVAudioPlayer、AVPlayer、系统声音、音频队列 ·AVAudioP...

  • iOS点击按钮播放声音

    概述 未完待续 代码 参考 IOS基础:声音调用 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制 IO...

  • IOS 推送消息声音自定义

    IOS消息推送声音默认使用系统声音,可以支持自定义。 注意事项: 1.由于系统播放器播放支持的音频格式系统默认三种...

  • 播放系统声音

    播放系统声音SystemSoundID mysound;NSString *sndpath = [[NSBundl...

网友评论

    本文标题:iOS 播放声音系列(一): 系统声音

    本文链接:https://www.haomeiwen.com/subject/qbszvxtx.html