欢迎来到天天文库
浏览记录
ID:41127326
大小:214.39 KB
页数:12页
时间:2019-08-17
《iOS开发之多媒体播放参考源码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、OSsdk中提供了很多方便的方法来播放多媒体。本文将利用这些SDK做一个demo,来讲述一下如何使用它们来播放音频文件。AudioToolboxframework 使用AudioToolboxframework。这个框架可以将比较短的声音注册到systemsound服务上。被注册到systemsound服务上的声音称之为systemsounds。它必须满足下面几个条件。1、 播放的时间不能超过30秒2、数据必须是PCM或者IMA4流格式3、必须被打包成下面三个格式之一:CoreAudioFormat(.caf),Waveformaudio(.wav), 或者A
2、udioInterchangeFile(.aiff) 声音文件必须放到设备的本地文件夹下面。通过AudioServicesCreateSystemSoundID方法注册这个声音文件,AudioServicesCreateSystemSoundID需要声音文件的url的CFURLRef对象。看下面注册代码:#import@interfaceMediaPlayerViewController:UIViewController{IBOutletUIButton*audioButton;SystemSoundI
3、DshortSound;}-(id)init{self=[superinitWithNibName:@"MediaPlayerViewController"bundle:nil];if(self){//GetthefullpathofSound12.aifNSString*soundPath=[[NSBundlemainBundle]pathForResource:@"Sound12"ofType:@"aif"];//Ifthisfileisactuallyinthebundle...if(soundPath){//CreateafileURLwiththispa
4、thNSURL*soundURL=[NSURLfileURLWithPath:soundPath];//RegistersoundfilelocatedatthatURLasasystemsoundOSStatuserr=AudioServicesCreateSystemSoundID((CFURLRef)soundURL,&shortSound);if(err!=kAudioServicesNoError)NSLog(@"Couldnotload%@,errorcode:%d",soundURL,err);}}returnself;}这样就可以使用下面代码播放声
5、音了:-(IBAction)playShortSound:(id)sender{AudioServicesPlaySystemSound(shortSound);}使用下面代码,还加一个震动的效果:-(IBAction)playShortSound:(id)sender{AudioServicesPlaySystemSound(shortSound);AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);}AVFoundationframework 对于压缩过Audio文件,或者超过30秒的音频文件,可以使用A
6、VAudioPlayer类。这个类定义在AVFoundationframework中。 下面我们使用这个类播放一个mp3的音频文件。首先要引入AVFoundationframework,然后MediaPlayerViewController.h中添加下面代码:#import@interfaceMediaPlayerViewController:UIViewController{IBOutletUIButton*audioButton;SystemSoundI
7、DshortSound;AVAudioPlayer*audioPlayer; AVAudioPlayer类也是需要知道音频文件的路径,使用下面代码创建一个AVAudioPlayer实例:-(id)init{self=[superinitWithNibName:@"MediaPlayerViewController"bundle:nil];if(self){NSString*musicPath=[[NSBundlemainBundle]pathForResource:@"Music"ofType:@"mp3"];if(musicPath){NSURL*music
8、URL=[
此文档下载收益归作者所有