多媒体之音效

QQ聊天有消息时会有提示音,现在用AudioToolbox实现提示音的效果。

注意:xcode有些版本不能用AudioToolbox播放声音可能是一些bug吧,我测试好久,在他Mac上可以,在我Mac上就不可以,最终还是oliver帮忙搞定

AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(System Sound Service)。System Sound Service是一种简单、底层的声音播放服务,但是它本身也存在着一些限制:

1.音频播放时间不能超过30s

2.数据必须是PCM或者IMA4格式

3.音频文件必须打包成.caf、.aif、.wav中的一种(注意这是官方文档的说法,实际测试发现一些.mp3也可以播放)

使用System Sound Service 播放音效的步骤如下:

1.调用AudioServicesCreateSystemSoundID(   CFURLRef  inFileURL, SystemSoundID*   outSystemSoundID)函数获得系统声音ID。

2.如果需要监听播放完成操作,则使用AudioServicesAddSystemSoundCompletion(  SystemSoundID inSystemSoundID,
CFRunLoopRef  inRunLoop, CFStringRef  inRunLoopMode, AudioServicesSystemSoundCompletionProc  inCompletionRoutine, void*  inClientData)方法注册回调函数。

3.调用AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID) 或者AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID) 方法播放音效(后者带有震动效果)。

//
//  ViewController.m
//  AudioToolBox
//
//  Created by City--Online on 15/5/5.
//  Copyright (c) 2015年 CYW. All rights reserved.
//

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

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self playSoundEffect];

}
/**
 *  播放完成回调函数
 *
 *  @param soundID    系统声音ID
 *  @param clientData 回调时传递的数据
 */
void soundCompleteCallback(SystemSoundID soundID,void * clientData){
    NSLog(@"播放完成...");
}

-(void)playSoundEffect
{
    NSString *audioFile=[[NSBundle mainBundle] pathForResource:@"1" ofType:@"wav"];
    NSLog(@"%@",audioFile);
    NSURL *fileUrl=[NSURL fileURLWithPath:audioFile];
    NSLog(@"%@",fileUrl);
    //1.获得系统声音ID
    SystemSoundID soundID=0;
    /**
     * inFileUrl:音频文件url
     * outSystemSoundID:声音id(此函数会将音效文件加入到系统音频服务中并返回一个长整形ID)
     */
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID);
    //如果需要在播放完之后执行某些操作,可以调用如下方法注册一个播放完成回调函数
    AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);
    //2.播放音频
    AudioServicesPlaySystemSound(soundID);//播放音效
    //    AudioServicesPlayAlertSound(soundID);//播放音效并震动
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
时间: 2024-10-15 08:01:05

多媒体之音效的相关文章

TTP223E-BA6/TTP233D-HA6 SOT23-6 1键/单按键触摸感应IC

产品型号:TTP223E-BA6 产品品牌:TONTEK/通泰 封装形式:SOT23-6 台湾通泰一级代理,原装现货具有优势!工程服务,技术支持,让您的生产高枕无忧. 概 述 ● TTP223E-BA6 TonTouchTM 是单按键触摸检测芯片, 稳定的触摸检测效果可以广泛的满足不同应用的需求, 此触摸检测芯片是专为取代传统按键而设计, 触摸检测 PAD 的大小可依不同的灵敏度设计在合理的范围内, 低功耗与宽工作电压, 是此触摸芯片在 DC 或 AC应用上的特性. 特 点 ● 工作电压 2.0

单通道感应芯片TTP223E-BA6/CA6/HA6 单按键触摸检测IC

TTP223E-BA6 / TONTEK/通泰封装形式:SOT23-6概 述● TTP223E-BA6 TonTouchTM 是单按键触摸检测芯片, 稳定的触摸检测效果可以广泛的满足不同应用的需求, 此触摸检测芯片是专为取代传统按键而设计, 触摸检测 PAD 的大小可依不同的灵敏度设计在合理的范围内, 低功耗与宽工作电压, 是此触摸芯片在 DC 或 AC应用上的特性.特 点● 工作电压 2.0V ~ 5.5V● 工作电流 @VDD=3V﹐无负载低功耗模式下典型值 2.0uA?最大值 4.0uA●

&lt;图形图像,动画,多媒体&gt; 读书笔记 --- 音效

音频多媒体文件主要是存放音频数据信息,音频文件在录制的过程中把声音信号,通过音频编码,变成音频数字信号保存到某种格式文件中.在播放过程中在对音频文件解码,解码出的信号通过扬声器等设备就可以转成音波.音频文件在编码的过程中数据量很大,所以有的文件格式对于数据进行了压缩,因此音频文件可以分为: 无损格式,是非压缩数据格式,文件很大一般不适合移动设备,例如:WAV,AU,APE等文件 有损格式,对于数据进行了压缩,压缩后丢掉了一些数据,例如MP3,WMA等文件. 1.WAV文件 WAV文件目前是最流行

&amp;lt;图形图像,动画,多媒体&amp;gt; 读书笔记 --- 音效

音频多媒体文件主要是存放音频数据信息,音频文件在录制的过程中把声音信号,通过音频编码,变成音频数字信号保存到某种格式文件里.在播放过程中在对音频文件解码,解码出的信号通过扬声器等设备就能够转成音波.音频文件在编码的过程中数据量非常大,所以有的文件格式对于数据进行了压缩,因此音频文件能够分为: 无损格式,是非压缩数据格式,文件非常大一般不适合移动设备,比如:WAV,AU,APE等文件 有损格式,对于数据进行了压缩,压缩后丢掉了一些数据,比如MP3,WMA等文件. 1.WAV文件 WAV文件眼下是最

Android多媒体开发介绍(转)

Android多媒体开发介绍 转自:http://blog.csdn.net/reiliu/article/details/9060557 一.       多媒体架构 基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4.H.264.MP3.AAC.AMR.JPG.PNG.GIF等.从功能上分为两部分,一是音/视频的回放(PlayBack),二是音视频的纪录(Recorder). CODEC(编解码器)使用OpenMAX 1L

HTML 多媒体

1.多媒体简介 Web 上的多媒体指的是音效.音乐.视频和动画,多媒体有多种不同的格式,它可以是听到或看到的任何内容,文字.图片.音乐.音效.录音.电影.动画等等.在互联网上,几乎在所有网站都能发现嵌入网页中的多媒体元素,现代浏览器已支持多种多媒体格式. 第一代浏览器只支持文本,而且即使是对文本的支持也仅限于单一字体和单一颜色,随后诞生了支持颜色.字体和文本样式的浏览器,还增加了对图片的支持.不同的浏览器以不同的方式处理对音效.动画和视频的支持,某些元素能够以内联的方式处理,而某些则需要额外的插

多媒体文件格式全解说(上)--音视频

视频: mp4/m4v/3gp/mpg.flv/f4v/swf.avi.gif.wmv.rmvb.mov.mts/m2t.webm/ogg/mkv MP4格式是最常见的一种视频文件格式,它现在所使用的视频编码并不是原来的MPEG4,而是H.264/AVC视频编码和AAC音频编码.它是一种商业的视频编码,国外是需要版权费用的,一般较常用的处理器都会有硬件编码解码H.264功能.但由于其商业版权,火狐和Opera的HTML5 <video>标签并不完全支持此格式.M4V是苹果公司创造的一种视频格式

(转载)iOS 多媒体

音频:(音效.音乐) 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制.在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework来完成音效和音乐播放. 音效: AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注

Swift - 给游戏添加背景音乐和音效(SpriteKit游戏开发)

游戏少不了背景音乐和音效.下面我们通过创建一个管理音效的类,来实现背景音乐的播放,同时点击屏幕可以播放相应的音效. 声音管理类 SoundManager.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import SpriteKit //引入多媒体框架 import AVFoundation class SoundManager :SKNode{     //申明一个播放器