ios 简单系统提示音

此方法为获取音频文件的相关信息

 NSString *audiopath = [[NSBundle mainBundle]pathForResource:@"9415" ofType:@"wav"];
    NSURL * audioURL = [NSURL fileURLWithPath:audiopath];
    AudioFileID audioFile;
    //打开
    AudioFileOpenURL((__bridge CFURLRef _Nonnull)(audioURL), kAudioFileReadPermission, 0, &audioFile);
    //读取
    UInt32 dictionarySize = 0;
    AudioFileGetPropertyInfo(audioFile, kAudioFilePropertyInfoDictionary, &dictionarySize, 0);
    CFDictionaryRef  dictionary;
    AudioFileGetProperty(audioFile  , kAudioFilePropertyInfoDictionary, &dictionarySize, &dictionary);
    NSDictionary *audioDic = (__bridge NSDictionary *)dictionary;
    for (int i = 0; i < [audioDic allKeys].count; i++) {
        NSString *key =[[audioDic allKeys]objectAtIndex:i];
        NSString *value =[audioDic valueForKey:key];
        NSLog(@"打印数据%@,%@",key,value);
    }
    CFRelease(dictionary);
    AudioFileClose(audioFile);


此方法为添加震动,注意之后手机才有震动,iPad没有震动因此需要判断

  NSString *ddevue = [[UIDevice currentDevice] model];
    if ([ddevue isEqualToString:@"iPhone"]) {
        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    }

添加自定义系统提示音导入的音频文件要低于30s,否则无法使用

    /*
     当手机静音的时候此方法失效
     */

    NSURL *systemSound_url =[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"9418" ofType:@"wav"]];
    //创建ID
    SystemSoundID systemSound_id;
    AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(systemSound_url), &systemSound_id);
    //注册callback
    AudioServicesAddSystemSoundCompletion(systemSound_id, NULL, NULL, SoundFInishedPlaying, NULL);
    //播放系统声音
    AudioServicesPlaySystemSound(systemSound_id);


这里面的SoundFInishedPlaying方法实际是一个C方法

void SoundFInishedPlaying(SystemSoundID sound_id, void *user_data){
    AudioServicesRemoveSystemSoundCompletion(sound_id);
    AudioServicesDisposeSystemSoundID(sound_id);
}

此方法放在的位置如下

@interface ViewController ()

@end
void SoundFInishedPlaying(SystemSoundID sound_id, void *user_data){
    AudioServicesRemoveSystemSoundCompletion(sound_id);
    AudioServicesDisposeSystemSoundID(sound_id);
}
@implementation ViewController

上面的方法在静音模式下是失效的无法提示,我们只需替换最后一句代码AudioServicesPlaySystemSound(systemSound_id);改为  AudioServicesPlayAlertSound(systemSound_id);

这个方法在正常模式下为震动加提示音,在静音模式下为震动



方法中的音频文件自己上网上下载小于30s的提示音就可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值