1.IOS系统中的音频播放方式
AVAudioPlayer、AVPlayer、系统声音、音频队列
AVAudioPlayer:使用简单方便,但只能播放本地音频,不支持流媒体播放。
AVPlayer:IOS4.0以后,可以使用AVPlayer播放本地音频和支持流媒体播放,但提供接口较少,处理音频不够灵活。
音频队列主要处理流媒体播放,提供了强大且灵活的API接口(C函数的接口),但处理起来也较为复杂。
首先来说下AVAudioPlayer的使用
使用AVAudioPlayer或AVPlayer需要引用AVFoundation类库
处理音频示例:
- /*************AVAudioPlayer******************/
-
- NSBundle *bundle=[NSBundle mainBundle];
-
- //音频文件路径
- NSString *musicurl=[bundle pathForResource:@"第一夫人" ofType:@"mp3"];
-
- //初始化本地的URl
- NSURL *url=[[NSURL alloc] initFileURLWithPath:musicurl];
-
- //声明一个全局的 AVAudioPlayer *player;
-
- player=[[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
-
- //准备播放
- [player prepareToPlay];
-
- /************URL地址播放*******/
-
- /**************AVPlayer**************/
- // NSString *musicurl=@"http://zhangmenshiting.baidu.com/data2/music/33934538/339262571358352061320.mp3?xcode=ec59d57fb2fe65b2ac5cb01b8744315c";
- //
- // NSURL *url=[NSURL URLWithString:musicurl];
- //
- // AVPlayer *aplayer=[[AVPlayer alloc] initWithURL:url];
- //
- // [aplayer play];
常用属性:
1.音量
player.volume=0.8;//0.0-1.0之间
2.循环次数
player.numberOfLoops=3;//默认只播放一次
player.duration;//总时长
3.播放位置
palyer.currentTime=15.0;
4.声道数
NSUInterger channels=player.numberOfChannels;//只读属性
//常用方法
[player play];//播放
[player pause];//暂停
[player stop]//停止
代理方法
AVAudioPlayerDelegate
系统声明的格式caf/wav/aiff格式,且时长小于30s需要导入AudioToolBox类库
- /***********播放系统声音(30s)*************************/
- // NSString *filePath = [[NSBundle mainBundle] pathForResource:@"44th Street Medium" ofType:@"caf"];
- //
- // NSURL *url=[NSURL fileURLWithPath:filePath];
- // // SystemSoundID soundId;
- // // unsigned long soundId;
- //
- // //为url地址注册系统声音
- // AudioServicesCreateSystemSoundID((CFURLRef)url, &soundId);
- //
- // NSLog(@"soundId : %lu", soundId);
- //
- // //播放系统声音
- // AudioServicesPlaySystemSound(soundId);
- //
- // //播放震动
- // AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
贴上效果图(Xlib)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。