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)

posted @ 2016-06-16 14:39  lvable  阅读(345)  评论(0编辑  收藏  举报