ios播放系统自带音效以及震动

int systemSoundID;

AudioServicesPlaySystemSound(systemSoundID);

//systemSoundID的取值范围在1000-2000

//播放自己的声音,但此种播放方法主要播放一些较短的声音文件

NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], 

@"/jad0007a.wav"];

id SystemSoundID soundID;

NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];

AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);

AudioServicesPlaySystemSound(soundID);

需求大致分为三种:

1.震动

2.系统音效(无需提供音频文件)

3.自定义音效(需提供音频文件)

我的工具类的封装:

[cpp] 

// 

//  WQPlaySound.h 

//  WQSound 

// 

//  Created by 念茜 on 12-7-20. 

//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved. 

// 

 

#import <UIKit/UIKit.h> 

#import <AudioToolbox/AudioToolbox.h> 

 

@interface WQPlaySound : NSObject 

    SystemSoundID soundID; 

 

 

-(id)initForPlayingVibrate; 

 

 

-(id)initForPlayingSystemSoundEffectWith:(NSString *)resourceName ofType:(NSString *)type; 

 

 

-(id)initForPlayingSoundEffectWith:(NSString *)filename; 

 

 

-(void)play; 

 

@end 

[cpp]

// 

//  WQPlaySound.m 

//  WQSound 

// 

//  Created by 念茜 on 12-7-20. 

//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved. 

// 

 

#import "WQPlaySound.h" 

 

@implementation WQPlaySound 

 

-(id)initForPlayingVibrate 

    self = [super init]; 

    if (self) { 

        soundID = kSystemSoundID_Vibrate; 

    } 

    return self;     

 

-(id)initForPlayingSystemSoundEffectWith:(NSString *)resourceName ofType:(NSString *)type 

    self = [super init]; 

    if (self) { 

        NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:resourceName ofType:type]; 

        if (path) { 

            SystemSoundID theSoundID; 

            OSStatus error =  AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &theSoundID); 

            if (error == kAudioServicesNoError) { 

                soundID = theSoundID; 

            }else { 

                NSLog(@"Failed to create sound "); 

            } 

        } 

         

    } 

    return self; 

 

-(id)initForPlayingSoundEffectWith:(NSString *)filename 

    self = [super init]; 

    if (self) { 

        NSURL *fileURL = [[NSBundle mainBundle] URLForResource:filename withExtension:nil]; 

        if (fileURL != nil) 

        { 

            SystemSoundID theSoundID; 

            OSStatus error = AudioServicesCreateSystemSoundID((__bridge CFURLRef)fileURL, &theSoundID); 

            if (error == kAudioServicesNoError){ 

                soundID = theSoundID; 

            }else { 

                NSLog(@"Failed to create sound "); 

            } 

        } 

    } 

    return self; 

 

-(void)play 

    AudioServicesPlaySystemSound(soundID); 

 

-(void)dealloc 

{  

    AudioServicesDisposeSystemSoundID(soundID); 

@end 

调用方法步骤:

1.加入AudioToolbox.framework到工程中

2.调用WQPlaySound工具类

2.1震动

[cpp] 

WQPlaySound *sound = [[WQPlaySound alloc]initForPlayingVibrate]; 

[sound play]; 

2.2系统音效,以Tock为例

[cpp] 

WQPlaySound *sound = [[WQPlaySound alloc]initForPlayingSystemSoundEffectWith:@"Tock" ofType:@"aiff"]; 

[sound play]; 

2.3自定义音效,将tap.aif音频文件加入到工程

[cpp] 

WQPlaySound *sound = [[WQPlaySound alloc]initForPlayingSoundEffectWith:@"tap.aif"]; 

[sound play]; 

时间: 2024-12-22 11:41:33

ios播放系统自带音效以及震动的相关文章

iOS中系统自带正则表达式的应用

//组装一个字符串,把里面的网址解析出来 NSString *urlString = @"sfdshttp://www.baidu.com"; NSError *error; //http+:[^\\s]* 这是检测网址的正则表达式 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"http+:[^\\s]*" options:0 error:&e

iOS开发中的播放系统音效和自定义音效

需求大致分为三种: 1.震动 2.系统音效(无需提供音频文件) 3.自定义音效(需提供音频文件) 我的工具类的封装: // // WQPlaySound.h // WQSound // // Created by 念茜 on 12-7-20. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox

iOS 系统自带分享开发

问题描述 iOS 系统自带分享开发 在系统的照片应用中的分享按钮可以弹出整个手机里面app提供的share扩展和action扩展 我想知道如何在自己的app中点击按钮让用户选择其中一个系统提供的分享扩展.这是如何实现的... 解决方案 iOS - 系统自带的分享功能IOS系统自带社交分享ios 调用系统自带分享 解决方案二: http://www.jb51.net/article/74298.htm

安卓系统自带的播放器,支持流媒体文件播放吗?

问题描述 安卓系统自带的播放器,支持流媒体文件播放吗? 如题.从网络上获取的流媒体文件,能不能使用安卓自带的视频播放器播放? 解决方案 安卓系统自带的播放器是可以播放在线流媒体视频的,自带的播放器支持标准流媒体视频播放但是良好的网速也是必须的,否则播放网络视频时可能会不流畅

ios可以调用系统自带的日历吗

问题描述 ios可以调用系统自带的日历吗 我想在自己的应用中打开系统的日历应用,该怎么弄,比如可以打开相机等可以打开日历吗? 解决方案 现在的 App Store 里有很多课程表的 Apps,比如「课程格子」,当然也有著名的「iStudiz Pro」,这些 Apps 共同特点都是能很好的管理课程表和作业列表,还能提醒你做作业或者是考试.然而,通常我们并没有那么高的需求,没有必要单独安装一款课表 App. 因此,我们完全可以利用 iOS 自带的「日历」App,配合「通知中心」的便利,来完成这一简单

脚本-chrome全屏播放视频时如何消除底部系统自带的控制条

问题描述 chrome全屏播放视频时如何消除底部系统自带的控制条 用chrome播放视频全屏时,底部总是会弹出自带的控制条,脚本里用controls来控制也不行,这该如何解决? 解决方案 https://www.zhihu.com/question/33594879/answer/57730822

android使用系统自带的播放器播放视频报错

问题描述 android使用系统自带的播放器播放视频报错 Intent intent = new Intent(android.content.Intent.ACTION_VIEW); Uri uri = Uri.parse(FileUtils.SDCARD_PATH + "/" + getItem(position).getName()); intent.setDataAndType(uri, "video/*"); mContext.startActivity(

iOS 7系统中仅支持播放等同于CD音质的音频文件

苹果正计划为全新的iOS 8操作系统添加高清音频播放功能,为了配合这项新技术,苹果可能还会发布一款全新的耳机和重新设计过的Lightning数据线. 当前iOS 7系统中仅支持播放等同于CD音质的音频文件,像苹果ALAC格式等具有更高采样率的音频文件则需要通过第三方应用才可进行播放,但在iOS 8中这一情况也许将发生改变. 如果你留意国内智能手机市场的话,会发现想要提高音乐播放品质一般需要三方面的支持.首先是硬件,需要将HiFi芯片植入到手机.其次是耳机,需要有一幅能听出音乐细腻程度或高度降噪的

IOS之UIImageView--小实例项目--带音效的拳皇动画

内容大纲: 1.初步工作 2.开始敲代码 3.注意 4.可能遇到的错误 5.设置音频速率在代码顺序上的注意点 带音效的拳皇动画实例项目 初步工作 1.新建一Objective-C工程之后,将需要的拳皇动画实例的图片以及音效资源都拷贝进工程. 2.勾选,只勾选会产生项目的虚拟文件目录即可. 3.在storyboard上添加组件,这里由于时间缘故就添加四个按钮和一个ImageView.并设置好ImageView的显示Model 4.为组件连好线, 开始敲代码 1.第一步,敲出stand序列动画的实现