多媒体之音效

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-22 21:25:14

多媒体之音效的相关文章

IOS多媒体

--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePicker

j2medev“用户界面和多媒体”版面问题整理[0407更新]

出品商 产品名称 产品版本 J2medev.com 版面有价值的问题合集 0.1 j2medev.com之"用户界面和多媒体"版面 有价值问题的整理 历史 Version Date Creator Description 1.0.0.1 2006-4-4 郑昀 草稿 1.0.0.2 2006-4-6 郑昀 第二稿   1 全屏问题   全屏/FullCanvas/setFullScreenMode 关键词 详细描述   SonyEricsson T630 该款手机的参数:索尼爱立信 T

[Qt教程] 第49篇 进阶(九) 多媒体应用简介

[Qt教程] 第49篇 进阶(九) 多媒体应用简介 楼主  发表于 2013-10-7 09:50:36 | 查看: 267| 回复: 2 多媒体应用简介 版权声明 该文章原创于作者yafeilinux,转载请注明出处! 导语      Qt对于音频视频的播放和控制等多媒体应用提供了强大的支持.要想使计算机发出响声,最简单的方法是调用QApplication::beep()静态函数:而对于简单的声音播放,可以使用 QSound类:对于简单的动画播放,可以使用QMovie类:要想对音频视频实现更多

LG借“娱乐系列”抢攻多媒体手机市场

手机市场的征战向来风起云涌,在各大手机厂商博弈之间,总会带给消费者许多新鲜乐趣,并以别具一格的产品引领潮流风尚.比如2008年,TOUCH技术就从LG Prada手机延续到了各个厂商,掀起了一波触控手机的热浪,而音乐手机.拍照手机等细分类别也不断被开拓,各大手机厂商都有多款劲品挑动消费者的购买欲望.但是今年,也许是金融危机的冲击减缓了厂商研发的进度,也许是3G时代揭幕吸引了大多数人的眼球,整个2G手机市场难能见到往年的精彩. 当然,这并不意味着2G市场并非毫无亮色,比如LG手机在推出S-clas

高端多媒体手机将入主3G娱乐手机市场

随着3G人气的逐渐积累,移动终端市场也在发生着一系列变化,消费者的目光更多转向支持3G网络,同时融合影像.音乐.游戏等娱乐功能的多媒体手机.从市场表现看,功能全面.专业品质过硬的高端配置机型已然成为关注焦点,以创新设计见长的LG手机9月最新上市的GC900e便是其中一款典型代表机型. 它拥有专业的800万像素施耐德原厂认证镜头,不仅支持IS智能拍摄,具备不胜枚举的专业功能,还能拍摄高像素的有声视频.从户外.室内.夜晚.背光.运动等许多模式的拍摄效果看,GC900e的表现与普通卡片相机毫不逊色.而

杜比推出最新PC音效技术

杜比实验室日前在其第三代杜比PC娱乐体验计划之下发布两项重要的PC音效技术发展成果.新的音频优化处理器和高音频增强处理器,协助宏碁Aspire Gemstone Blue系列笔记本电脑,为消费者重建家庭影院音响体验.杜比针对这些笔记本电脑进行微调处理,建立最佳化和定制化的参数以强化音效质量. 这些新方案属于第三代杜比家庭影院和杜比先进音频技术套件的一部分,协助PC制造商不论是通过内置喇叭或外接环绕音响系统,均可为他们的客户建立最多达7.1声道的最佳听觉体验. 杜比实验室负责营销规划的副总裁表示:

LG将杜比音效植入手机

本报讯(记者/戴远程)LG电子近日推出世界上首款3D手机LGKM900e,采用美国杜比实验室独家提供的移动娱乐音效体验技术,支持Divx等更多格式的播放.8GB超大内存等完备的影音多媒体功能. LG电子也成为全球首家将杜比移动环绕声技术应用到其手机产品中的制造商.据悉,该技术通过将声源进行技术优化,将丰富的音乐.电影带进手机.掌上游戏机等移动设备,可以呈现多种震撼影音的多媒体娱乐体验.

听说读写样样精通,多媒体学习的第一选择

    又到了高考时节了.小康的侄子今年参加高考,我相信今年他能取得理想的成绩.不过最近却有件让我比较头疼的事,那就是侄儿的父母要我给他们的宝贝儿子选择一款上大学后可以使用的语言学习的工具(真是可怜天下父母心啊,侄儿的高考还没开始,现在都开始为孩子大学的事情着想了).经过几天观察,小康最近终于有了惊喜的发现.     相信大家也都知道,每个语言学习中,听是第一重要的.为了让自己学好语言,基本上都会配备电子辞典.不过现阶段,经常出现的情况就是现在使用得好好的产品到了下一届在技术和功能上又被淘汰了.

iOS - AudioServicesPlay 短频音效播放

前言 extern void AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID) __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0); @available(iOS 2.0, *) public func AudioServicesPlayAlertSound(inSystemSoundID: SystemSoundID) 系统声音服务(System Sound Services)提