AVFoundation框架是一个功能强大的多媒体框架,用于iOS中音频/视频/音频会话/对摄像头和麦克风控制等功能的开发。
AVFoundation框架在对声音控制与音视频播放方面有着强大的功能,它是一个包含音频和视频内容的Object-C类。
框架包含的服务:
- 声音会话管理;
- 对应用媒体资源的管理;
- 对编辑媒体内容的支持;
- 捕捉声音和视频的功能;
- 播放音频和视频的功能;
- 轨迹管理;
- 对媒体元数据的管理;
- 立体拍摄。
1.视频和音频播放方式:
视频播放可以用AVFoundation框架实现,也可以用MediaPlayer框架。MediaPlayer也是用雨多媒体播放的框架。不同是AVFoundation框架中的视频播放更多是在自定义视频播放时使用,而MediaPlayer框架对我们定义好了一个功能较完整的视频播放器,有播放/暂停/停止等功能。
- MediaPlayer使用时添加MediaPlayer.framework框架,导入音视频信息:
@interface ViewController : UIViewController
{
}
@property(nonatomic,retain) MPMoviePlayerController *moviePlayer;
@end
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSString *urlString = [[NSBundle mainBundle]pathForResource:@"path" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:urlString];
_moviePlayer = [[MPMoviePlayerController alloc]init];
_moviePlayer.contentURL = url;
_moviePlayer.view.frame = self.view.bounds;
[self.view addSubview:_moviePlayer.view];
[_moviePlayer.play];
}
- 音频播放,使用AVFoundation框架中的AVAudioPlayer类,通过此类可以对音频进行播放/暂停等操作,
AVAudioPlayer使用步骤:
初始化AVAudioPlayer对象,设置本地文件路径;
设置播放属性,如音量,重复次数等操作;
调用play方法进行播放。
AVFoundation框架提供的是三个类:
- AVAudioPlayer:提供音频的播放功能;
- AVAudioRecorder:提供音频的录制功能;
- AVAudioSession:相关音频配置功能。
相关的音视频操作可以在代理AVAudioPlayerDelegate代理中进行。
2.GPS位置服务/地图编程:
CLLoation的作用时定位设备的当前位置,这个功能也会用于MapKit类中。CLLoation类位于CoreLoation框架中,因此如要使用CLLoation类,需将CoreLoation.framework导入项目。CLLoationManagerDelegate协议代理方法操作。
CLLocationManager *loactionManager = [[CLLocationManager alloc]init];
loactionManager.delegate = self;
[loactionManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[loactionManager startUpdatingLocation];
MKMapView编程:
MKMapView类属于MapKit.framework,使用前需导入MapKit框架。