iOS - 系统提醒短音频
Demo下载地址
iPhone端系统Audio资源路径:/System/Library/Audio/UISounds
首先,通过 NSFileManager 获取资源路径下的所有路径(文件夹/文件)
NSFileManager * fileManager = [NSFileManager defaultManager];
NSURL * _soundDataURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds"];
NSDirectoryEnumerator * _soundDirectoryEnum = [fileManager enumeratorAtURL:_soundDataURL
includingPropertiesForKeys:@[NSURLIsDirectoryKey]
options:0
errorHandler:^BOOL(NSURL * _Nonnull url, NSError * _Nonnull error) {
return YES;
}];
接着遍历枚举,然后获取系统音频的SoundID:
/*!
@typedef SystemSoundID
@abstract SystemSoundIDs are created by the System Sound client application
for playback of a provided AudioFile.
*/
typedef UInt32 SystemSoundID;
通过使用 AudioServicesCreateSystemSoundID 方法:
/*!
@function AudioServicesCreateSystemSoundID
@abstract Allows the application to designate an audio file for playback by the System Sound server.
@discussion SystemSoundIDs are used passed to
AudioServicesPlayAlertSound() & AudioServicesPlaySystemSound(),
designating the audio data to be played by the System Sound server.
@param inFileURL
A CFURLRef for an AudioFile.
@param outSystemSoundID
Returns a SystemSoundID.
*/
extern OSStatus
AudioServicesCreateSystemSoundID( CFURLRef inFileURL,
SystemSoundID* outSystemSoundID)
获取SoundID后,最后,使用 AudioServicesPlaySystemSound 播放这个SoundID 音频:
AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)