`
iaiai
  • 浏览: 2141867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios中播放声音和震动

 
阅读更多
//
//  AudioUtil.m
//  iaiai
// QQ:176291935
//
//  Created by iaiai on 14-9-25.
//  Copyright (c) 2014年 boying. All rights reserved.
//

#import "AudioUtil.h"
#import <AudioToolbox/AudioToolbox.h>

@implementation AudioUtil

int number = 0;

/**
  * 播放声音
  * @param name 资源名称
  * @param ext 资源后缀名
 **/
-(void)audioPlay:(NSString*)name ext:(NSString*)ext{
    [self audioPlay:name ext:ext num:1];
}

/**
 * 播放声音
 * @param name 资源名称
 * @param ext 资源后缀名
 * @param num 循环次数
 **/
-(void)audioPlay:(NSString*)name ext:(NSString*)ext num:(NSInteger*)num{
    NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:ext];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundID);
    AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, audioPlayFinish,num);
    AudioServicesPlaySystemSound(soundID);
    number++;
}

/**
 * 震动
 **/
-(void)vibratePlay{
    [self vibratePlay:1];
}

/**
 * 震动
 * @param num 震动次数
 **/
-(void)vibratePlay:(NSInteger*)num{
    AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, NULL, NULL, audioPlayFinish,num);
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    number++;
}

/**
  * 播放完成之后的回调方法
  * @param soundID 播放的声音ID
  * @param num 播放次数
 **/
void audioPlayFinish(SystemSoundID soundID,NSInteger* num){
    if (num&&num>0) {
        if (number>=num) {
            if (soundID!=kSystemSoundID_Vibrate) {
                AudioServicesDisposeSystemSoundID(soundID);
            }
        }else{
            AudioServicesPlaySystemSound(soundID);
            number++;
        }
    }else{
        if (soundID!=kSystemSoundID_Vibrate) {
            AudioServicesDisposeSystemSoundID(soundID);
        }
    }
}

@end
分享到:
评论

相关推荐

    iOS 控制播放声音和震动,单独控制

    iOS声音和震动的控制,声音和震动可以单独播放,点击声音播放声音,点击震动播放震动,代码以封装,简单引入头文件即可,好多人在博客问我,为什么播放不了,今天给大家写个demo,声音和震动分开来播放 。...

    iOS 单独控制声音和震动

    iOS声音和震动的控制,声音和震动可以单独播放,点击声音播放声音,点击震动播放震动,代码以封装,简单引入头文件即可,好多人在博客问我,为什么播放不了,今天给大家写个demo,声音和震动分开来播放 。

    iOS 单独控制声音和震动-----最新改进demo

    iOS声音和震动的控制,声音和震动可以单独播放,点击播放按钮,来区分是否打开了声音的开关和震动的开关,好多人说用不了,你们直接下载demo,还是播放不了,直接给我留言,这个demo 改进的内容是: 1、加了二个开关...

    利用iOS动画来模拟音量振动条的实现

    本篇文章主要利用iOS动画来模拟音量振动条的实现以及对CAReplicatorLayer的简单介绍,需要的朋友可以参考下

    phonegap ios iphone ipad 源码

    压缩包中提供了phonegap项目实例,同时包含调用iosSDK里面地理定位,加速器,联系人,声音和振动等功能的类库,简单易用,未开发节约时间。 PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台...

    IOS开发实现手机震动的提示实例代码

    主要介绍了IOS开发实现手机震动的提示实例代码的相关资料,需要的朋友可以参考下

    android phonegap震动,声音,Dialog

    phonegap的API提供 震动 响铃 调用原生弹窗功能. 此篇文章以cordova 3.3版本编写 据我总结核心步骤: 创建工程 ; 下载插件 ;编译工程; 调用插件; 按照如下步骤就能生产出代码: 打开cmd 控制台 1 使用...

    代码项目-通过陀螺仪传感器算法,从声波振动中提取语音.zip

    在不获取手机麦克风权限的情况下,通过陀螺仪传感器数据的神经网络算法,就可以从声波振动中提取出讲话者的语音。 现代智能手机上的MEMS陀螺仪足够灵敏,可以测量手机附近的声音信号。结果信号仅包含非常低的频率...

    播放系统声音

    播放系统的声音,默认1007的铃声和震动

    ios-通知,一行代码搞定前台通知.zip

    特性 1.程序在前台时后显示通知 ...2.支持声音/震动提示 3.支持点击事件 4.全局只有一个类:WZCNotification 5.简单易用,一行代码搞定 6.其他... 代码地址:https://github.com/voisen/WZCNotification

    phonegap-ios 源码

    PhoneGap是一个开源的开发框架,使用HTML,CSS和...它使开发者能够利用iPhone,Android,Palm,Symbian,Blackberry,Windows Phone和Beda智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等。

    PassportFeignServiceTests.java

    除了空间音频,Android 12 上的 App 还可以通过手机的振动马达,提供与声音相匹配的触觉反馈,实现更身临其境的游戏和音频体验。例如,可以使用通过不同铃声对应触觉反馈来识别来电者,或者在赛车游戏中模拟崎岖路面...

    iOS仿微信摇一摇功能

    iOS仿照微信摇一摇功能实现 一、描述 需要做一个界面,仿照微信摇一摇,获取接口进行签到功能。 首先明确以下几点: 1、需要震动。 2、需要声音。(准备好mp3音效) 二、直接贴代码 / Created by 石雄伟 on ...

    react-native-notifee::atom_symbol_selector:React Native Android和iOS的功能丰富的通知库,由@ revert-native-firebase的作者@invertase构建

    Notifee-React Native ... 声音,振动,灯光等 将您的通知组织到渠道和组中,以允许用户控制如何在其设备上处理通知 长时间运行的后台任务可以利用Android Foreground Services来显示正在进行的突出通知。

    ACSystemicQRCodeDemo:利用系统源生方法来扫描二维码,生成二维码,并封装开灯,震动,提示声音和从相册读取等功能

    ####利用系统源生方法来扫描二维码/索引,生成二维码,并封装开灯,震动,提示声音和从相册读取等功能 ##导航 支持iOS8.0 +,Xcode7.0 + 1, 2, 3, 4, 5, 6, ##功能 :摄像头扫码或通过相册扫码 生成二维码 ...

    iOS学习笔记之远程推送、静默推送与自定义消息推送

    如果应用处于 (1) 状态 , 则不会发出声音 , 会直接调用appDelegate的代理方法didReceiveRemoteNotification,此时如果想收到类似系统的弹窗提示,则需要自定义弹窗,提示音,振动(弹窗可以参考 : ForeNotification ...

    RainbowBridge:使用WKScriptMessageHandler将本机函数公开给JavaScript的本机桥

    使用相机扫描指定类型的元数据播放振动使用触摸ID进行身份验证使用加入对等组使用将事件发送到对等组保留任何已加入的对等组 从远程URL下载并缓存文件清除缓存的文件使用本地声音文件初始化声音处置声音实例播放声音...

    cordova-plugin-local-notifications:科尔多瓦本地通知插件

    播放声音或振动 窥视当前屏幕 闪烁设备的LED 支持平台 Android 4.4以上 iOS 10以上 Windows 10 重要通知 请确保您始终阅读所使用版本的带标签的自述文件。 如果无法升级,请参见0.8分支。 v0.9-beta进一步开发将在...

    iOS实现微信摇一摇功能

    1、需要震动。 2、需要声音。(准备好mp3音效) 二、这边直接贴代码 / Created by 石雄伟 on 16/7/29. // Copyright :copyright: 2016年 石雄伟. All rights reserved. // #import SignBoardViewController.h #...

Global site tag (gtag.js) - Google Analytics