博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IOS开发-视频,音频,录音简单总结

Posted on 2015-09-01 16:27  JodyChen  阅读(255)  评论(0编辑  收藏  举报

/*****

 * 1. 视频播放

 *

 *  @格式:mp4 mov m4v m2v 3gp 3g2

 *

 *  @系统框架使用:#import <MediaPlayer/MediaPlayer.h>

   不仅可以播放本地视频 也可以直接播放网络视频

 MPMoviePlayerController 播放视频的类,这个类比较特殊,有Controller的一些属性,但又不完全是控制器

 有两点需要注意:

 1.MPMoviePlayerController 上面播放视频 的view 需要给它坐标

 2.还需要添加在 某个视图上面

 ******/

 

MPMoviePlayerController播放时也需要有一个URL

1.设置视频是否循环播放:repeatMode

2.是否允许分享到airPlay:allowsAirPlay

3.是否使用lairPlay:airPlayVideoActive

4.如果播放的是网络视频的话 是否需要自动继续播放:shouldAutoplay

5.获得视频加载状态:loadState

6.视频的播放状态:playbackState

7.设置视频显示样式:controlStyle

 

还有一些通知,如MPMoviePlayerPlaybackStateDidChangeNotification通过通知可以检测播放状态发生改变,

*如果前面设置了controlStyle,后面设置的setFullscreen 将不会起作用

 

2.

AVAudioPlayer音频播放类

AVAudioRecorder录音类

录音的初始化和属性和音频播放大同小异

 

共有的有:

音频:

1.开始:play  2.暂停:pause 3.停止:stop 预加载:prepareToPlay

4.代理AVAudioRecorderDelegate 如:播放结束时触发- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

 

录音:

1.开始:record 2.暂停:pause 3.停止:stop 预加载:prepareToRecord

4.代理AVAudioPlayerDelegate 如:录音结束时触发(void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag

 

拓展:

1.进度 是按百分比计算(0到1之间)

 progressView.progress = 0.0;

 

2.NSFileManager文件管理类 也是一个单例

NSFileManager *manager = [NSFileManager defaultManager];

其中有一个重要常用的方法

查询并取出一个文件下所有子文件:subpathsAtPath

如:查询临时文件下的子文件:NSArray *list = [manager subpathsAtPath:NSTemporaryDirectory()];

 

3.例子

 

//1.音频文件的url路径
18     NSURL *url=[[NSBundle mainBundle]URLForResource:@"风吹麦浪.mp3" withExtension:nil];
     
20     //2.创建播放器
21     self.player=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSUURL fileURLWithPath:url]

 

 error:nil];
23 //3.缓冲 24 [self.player prepareToPlay]; 29 //开始播放/继续播放 30 [self.player play];
34 //暂停 35 [self.player pause];
36 //停止
37 //注意:如果点击了stop,那么一定要让播放器重新创建,否则会出现问题哦
38 [self.player stop];