安装百度到桌面,网站seo排名,售卖网站建设实验报告,网站建设如何记账学习总是在进行。
一、AVAudioPlayer如何处理中断
AVAudioPlayer类提供了代理方法#xff0c;用来处理当播放音频文件时#xff0c;发生来电、闹钟等事件。设置代理并遵守AVAudioPlayerDelegate协议,span stylefont-family: Arial, Helvetica, sans-serif;用来处理当播放音频文件时发生来电、闹钟等事件。设置代理并遵守AVAudioPlayerDelegate协议,span stylefont-family: Arial, Helvetica, sans-serif;AVAudioPlayerDelegate中提供的代理方法/span二、AVAudioPlayer代理方法实现
看例子1.加入音频相应的框架到项目中。
#import2.声明音频播放类并且实现AVAudioPlayerDelegate协议interface SquareViewController : UIViewControllerAVAudioPlayerDelegate{AVAudioPlayer *_audioPlayer;
}
property (nonatomic,retain)AVAudioPlayer *audioPlayer;3.实现AVAudioPlayerDelegate协议方法。#pragma mark - AVAudioPlayerDelegate// 音频播放完成时
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{// 音频播放完成时调用该方法。// 参数flag如果音频播放无法解码时该参数为NO。//当音频被终端时该方法不被调用。而会调用audioPlayerBeginInterruption方法// 和audioPlayerEndInterruption方法}// 解码错误
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error{NSLog(解码错误);}// 当音频播放过程中被中断时
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{// 当音频播放过程中被中断时执行该方法。比如播放音频时电话来了// 这时候音频播放将会被暂停。
}// 当中断结束时
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags{// AVAudioSessionInterruptionFlags_ShouldResume 表示被中断的音频可以恢复播放了。// 该标识在iOS 6.0 被废除。需要用flags参数来表示视频的状态。NSLog(中断结束恢复播放);if (flags AVAudioSessionInterruptionFlags_ShouldResume player ! nil){[player play];}}//- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags {
//
// //该方法在iOS 6.0 中被废除
// if (flags AVAudioSessionInterruptionFlags_ShouldResume player ! nil){
// [player play];
// }
//
//}
//
//- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player{
// //该方法被废除
//
//}注意因为以上两个方法在iOS 6.0 已经被废除。故注释。4.使用音频播放器播放音频文件//异步加载音频播放器进行播放self.view.backgroundColor [UIColor whiteColor];dispatch_queue_t dispatchQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_async(dispatchQueue, ^(void) {NSBundle *mainBundle [NSBundle mainBundle];NSString *filePath [mainBundle pathForResource:mySong ofType:mp3];NSData *fileData [NSData dataWithContentsOfFile:filePath];NSError *error nil;// 初始化音频控制器 self.audioPlayer [[AVAudioPlayer alloc] initWithData:fileData error:error];if (self.audioPlayer ! nil){self.audioPlayer.delegate self;// 设置 delegateif ([self.audioPlayer prepareToPlay] [self.audioPlayer play]){// 播放成功 }else {// 播放失败 }}else {// 初始化 AVAudioPlayer 失败 }});