iOS基础学习(5)------音频(一)AudioservicesPlaySystemSound和AVAudioPlayer的使用
2014-10-24 10:20
771 查看
IOS 主要提供了下面几种播放音频的类:[objc] view plaincopyAudioservicesPlaySystemSound
[objc] view plaincopyAVAudioPlayer 类
[objc] view plaincopy音频队列
[objc] view plaincopyOpenAL
1、首先介绍AudioservicesPlaySystemSound方法,这个函数一般用于播放简单的无混杂的音频,具体的要求有以下几点: (1)、音频长度不能超过30秒; (2)、所支持的格式只能是PCM或者IMA4; (3)、文件必须被存储为.caf .aif .wav 三种格式; (4)、不能从内存读取播放,只能从磁盘读取播放; (5)、对于所播放的音频的播放方式不能控制,例如循环播放等: (6)、该方法相对其他几种方法能够节省内存资源;所以该方法的一些特性也主动了其的用处,一般在程序中用于自定义的提示音或者警告。此处通过Demo来说明该方法的用处,(1)、新建一个工程,设置四个Button,
(2)、导入头文件将界面上的按钮和lable和代码进行关联,导入AVFoundation.framework库,当点击该按钮时调用系统自带的提示音:
[objc] view plaincopy#import <AudioToolbox/AudioToolbox.h>
#import <CoreFoundation/CoreFoundation.h>
[objc] view plaincopy@property (strong, nonatomic) IBOutlet UILabel *ui_labservice;
[objc] view plaincopy<pre name="code" class="objc">- (IBAction)servicesPlay:(id)sender
{
//震动
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
//调用系统的提示音
AudioServicesPlaySystemSound(1106);
}
2、AVAudioPlayer类的使用:使用该类需导入AudioToolbox.framework库和AVFoundation.framework库,在Demo中之前已导入AVFoundation,所以此处导入AudioToolbox即可:
(1)、AVAudioPlayer使用简单方便,但是不支持流式;这就意味着:在播放音频前,必须等到整个音频加载完成后,才能开始播放音频;录音时,也必须等到录音结束后,才能获取到录音数据,支持所有的音频格式,官方文档的解释是:The AVAudioPlayer class lets you play sound in any audio format available in iOS and OS X. (2)、AVAudioPlayer可以播放任意长度的音频文件;(3)、支持循环播放;(4)、可以同步播放多个音频文件;(5)、控制播放进度以及从音频文件的任意一点开始播放,(6)、可以暂停,停止。其他特性请参考苹果官方文档;下面通过Demo中的代码来说明该方法的用处,首先导入头文件,[objc] view plaincopy#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>
[objc] view plaincopy@interface ViewController : UIViewController
{
AVAudioPlayer *audioPlayer;
MPMoviePlayerViewController *moviePlayer;
}
实现点击不同按钮后播放、停止、暂停等方法:[objc] view plaincopy//暂停
- (IBAction)AudioPlayerpause:(id)sender
{
[audioPlayer pause];
}
//播放
- (IBAction)AVAudioPlayer:(id)sender
{
//禁止程序运行时自动锁屏
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
//本地文件
NSString *path = [[NSBundle mainBundle]
pathForResource:@"001" ofType:@"mp3"];
//初始化音频
audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:
[NSURL fileURLWithPath:path] error:NULL];
//分配资源将其加入到播放列表
[audioPlayer prepareToPlay];
[audioPlayer play];
//循环次数
audioPlayer.numberOfLoops =3;
}
//停止
- (IBAction)AudioPlayerstop:(id)sender
{
[audioPlayer stop];
}
ok,运行Demo,当点击播放时加入到工程中的音频会自动循环播放三次,需要注意的是,确保导入的声音文件和读取的文件名相同。
[objc] view plaincopyAVAudioPlayer 类
[objc] view plaincopy音频队列
[objc] view plaincopyOpenAL
1、首先介绍AudioservicesPlaySystemSound方法,这个函数一般用于播放简单的无混杂的音频,具体的要求有以下几点: (1)、音频长度不能超过30秒; (2)、所支持的格式只能是PCM或者IMA4; (3)、文件必须被存储为.caf .aif .wav 三种格式; (4)、不能从内存读取播放,只能从磁盘读取播放; (5)、对于所播放的音频的播放方式不能控制,例如循环播放等: (6)、该方法相对其他几种方法能够节省内存资源;所以该方法的一些特性也主动了其的用处,一般在程序中用于自定义的提示音或者警告。此处通过Demo来说明该方法的用处,(1)、新建一个工程,设置四个Button,
(2)、导入头文件将界面上的按钮和lable和代码进行关联,导入AVFoundation.framework库,当点击该按钮时调用系统自带的提示音:
[objc] view plaincopy#import <AudioToolbox/AudioToolbox.h>
#import <CoreFoundation/CoreFoundation.h>
[objc] view plaincopy@property (strong, nonatomic) IBOutlet UILabel *ui_labservice;
[objc] view plaincopy<pre name="code" class="objc">- (IBAction)servicesPlay:(id)sender
{
//震动
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
//调用系统的提示音
AudioServicesPlaySystemSound(1106);
}
2、AVAudioPlayer类的使用:使用该类需导入AudioToolbox.framework库和AVFoundation.framework库,在Demo中之前已导入AVFoundation,所以此处导入AudioToolbox即可:
(1)、AVAudioPlayer使用简单方便,但是不支持流式;这就意味着:在播放音频前,必须等到整个音频加载完成后,才能开始播放音频;录音时,也必须等到录音结束后,才能获取到录音数据,支持所有的音频格式,官方文档的解释是:The AVAudioPlayer class lets you play sound in any audio format available in iOS and OS X. (2)、AVAudioPlayer可以播放任意长度的音频文件;(3)、支持循环播放;(4)、可以同步播放多个音频文件;(5)、控制播放进度以及从音频文件的任意一点开始播放,(6)、可以暂停,停止。其他特性请参考苹果官方文档;下面通过Demo中的代码来说明该方法的用处,首先导入头文件,[objc] view plaincopy#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>
[objc] view plaincopy@interface ViewController : UIViewController
{
AVAudioPlayer *audioPlayer;
MPMoviePlayerViewController *moviePlayer;
}
实现点击不同按钮后播放、停止、暂停等方法:[objc] view plaincopy//暂停
- (IBAction)AudioPlayerpause:(id)sender
{
[audioPlayer pause];
}
//播放
- (IBAction)AVAudioPlayer:(id)sender
{
//禁止程序运行时自动锁屏
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
//本地文件
NSString *path = [[NSBundle mainBundle]
pathForResource:@"001" ofType:@"mp3"];
//初始化音频
audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:
[NSURL fileURLWithPath:path] error:NULL];
//分配资源将其加入到播放列表
[audioPlayer prepareToPlay];
[audioPlayer play];
//循环次数
audioPlayer.numberOfLoops =3;
}
//停止
- (IBAction)AudioPlayerstop:(id)sender
{
[audioPlayer stop];
}
ok,运行Demo,当点击播放时加入到工程中的音频会自动循环播放三次,需要注意的是,确保导入的声音文件和读取的文件名相同。
相关文章推荐
- iOS开发使用阿里云直播时,无法使用AudioServicesPlaySystemSound播放音频
- 【iOS】音频的简单使用(AudioServicesPlaySystemSound音频服务)
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AVAudioPlayer音频播放器--及--AudioServicesPlaySystemSound音频服务
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound音频服务—IOS开发
- AudioServicesPlaySystemSound 系统声音提示 iOS iPad
- AudioServicesPlaySystemSound 系统声音提示 iOS iPad
- IOS AudioServicesPlaySystemSound 后台锁屏播放
- iOS 开发 初级:Audio之 System Sound Services的使用
- AudioServicesPlaySystemSound音频服务—b
- ios给按钮添加系统声音,AudioServicesPlaySystemSound 系统声音提示