ios原声音频播放AVAudioSession 总结
//音频播放
/*英译:record:录音 */
1 导入头文件
#import<AVFoundation/AVFoundation.h>
//AVAudioSession是一个单例模式。
在IOS7以前可以不用设置,在IOS7上不设置AVAudioSession则不可以录音。
//处理录音或播放结束后,要关闭音频会话,来延续后台音乐的播放
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:NO error:nil];
//处理要想启用其他程序的后台音乐播放,则要用如下设置
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivatio
//处理录音保存路径
1 CFUUID每次都会产生一个唯一号
CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault);
NSString *cfuuidString = (NSString*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault
2 创建沙盒
NSString *catchPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
3 创建沙盒文件夹(唯一的)
NSString *audioRecordFilePath=[catchPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.AAC", cfuuidString]];
4 将本地NSString转化为NSURL(fileURLWithPath)
NSURL *url=[NSURL fileURLWithPath:audioRecordFilePath];
//音频录制(标准过程5,9更新)
准备:导入AVFoundation框架及头文件
1 设置会话类型,指定类型为播放及录音
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
2 激活会话类别
[audioSession setActive:YES error:nil];
3 封装字典参数,有音频格式int,采样率float,通道数int,深度int
是通过KVC来设置的(setValue forKey)
NSDictionary *setting=[NSDictionary dictionary];
[setting setValue:[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
4 封装保存音频的沙盒路径
5 实例化录音对象,参数:保存URL,参数字典,错误,
注意模拟器调试,只能保存到沙盒中,
AVAudioRecorder *recorder = [[AVAudioRecorder alloc]initWithURL:(NSURL *) settings:(NSDictionary *) error:&error];
6 预加载准备录音
[recorder prepareRecorder];
7 处理按钮点击监听录音
监听按钮touchDown:录音开启 [recorder recorder];
监听按钮touchUpInset:手指在点击按钮后抬起
及touchUpOutset:手指在点击按钮后在其他地方抬起
停止录音 [recorder stop];
录音的实现总结:
1 实例化单例会话对象,设置会话类别为录音及播放模式,开启会话
2 实例化录音对象,参数有存储沙盒路径,音频字典参数(音频格式,采样率,深度等)
3 封装沙盒路径
4 实例化录音对象 路径 字典参数 错误
5 预加载开启
6 监听按钮的点击状态,按下录音,抬起停止
7 监听点击 实例化音频播放对象,填入URL,播放开启
//音频播放(限本地播放)
苹果推荐的音频类型:AAC,IMA4,CAF(CoreAudioFormat)
1 AVFoundation
(只能播放本地音频,非网络音频)
_player=[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
[_player play];
总结:播放本地音频三步
《1》封装音频URL路径
《2》类方法 初始化音频对象,参数URL 错误处理
《3》对象开启
对象中有许多属性 设置循环次数,播放控制(play/stop)及预加载方法prepareToPlay
//视频音频播放(支持网络)
2 MediaPlayer
1、首先导入media.play.framework 框架
2、包含头文件<MediaPlayer/MediaPlay.h>
具体实现步骤
1 封装URL路径
2 实例化MPMoviePlayerController对象
alloc initWithURL 添加URL
3 将音频控制器View添加到self.view (add)
(由于建立控制器,给视频播放对象非配内存空间,播放结束要去释放他,电影播放结束是会注册一个叫MPMoviePlaybackDidFinishNotification的通知通知到到通知中心,所以做音频播放对象释放,给self添加监听者来释放)
4 [NSNotificationCenter defaultCenter] addObsever:self selector:@selector(MovePlayBackComplete:)Object:
4 音频对象开启 play
(一般建一个按钮,监听方法里面写这些东西)
ios原声音频播放AVAudioSession 总结的更多相关文章
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...
- iOS开发系列--音频播放(音效和音乐)播放本地的
音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为 点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音 ...
- iOS开发系列--音频播放、录音、
音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频 ...
- 关于ios原声嵌入web页面的问题
当在一个界面中既有原生又有web的时候,如果想让上下整体滑动的话,我们怎么确定web的高度呢,下面分享一下我的心得 首先在webView的代理方法中我们可以获取到加载完整个web页面的高度 - (vo ...
- iOS开发之音频播放AVAudioPlayer 类的介绍
主要提供以下了几种播放音频的方法: 1. System Sound Services System Sound Services是最底层也是最简单的声音播放服务,调用 AudioServicesPla ...
- IOS原声二维码条形码扫描实现
本文讲述如何用系统自带的东东实现二维码扫描的功能:点击当前页面的某个按钮,创建扫描VIEW.细心的小伙伴可以发现 title被改变了,返回按钮被隐藏了.这个代码自己写就行了,与本文关系不大...绿色的 ...
- IOS 音频播放
iOS音频播放 (一):概述 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖 ...
- iOS音频播放(一):概述
(本文转自码农人生) 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改,我也因此对于iOS下的音频播放实现有了一定的研究.写这个 系列的博客目的一方面希望能够抛砖引玉 ...
- iOS开发----音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
随机推荐
- Nginx搭建https服务器
HTTPS简介 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版.即H ...
- 软件工程(FZU2015)赛季得分榜,第9回合
目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...
- chkdsk磁盘修复命令工具怎么用,怎样运行chkdsk工具修复?
Chkdsk是系统检查磁盘当前状态的一个命令,启动它可以显示磁盘状态.内存状态和指定路径下指定文件的不连续数目.选择“开始→运行”输入“Chkdsk”回车,即可启动Chkdsk,它会自动校验文件并将丢 ...
- win7下装ubuntu14.04双系统
一.给ubuntu准备安装空间 计算机--右键--管理-磁盘管理--选择一个空余空间较多的磁盘--右键--压缩卷--压缩大概60G空间(接下来ubuntu就会装到这60G里面) 二.制作启动u盘 ...
- <<< javascript地址栏,代码
不伤及服务器,可以用来测试项目效果 修改网页.不修改服务器端任何网页页面 javascript:document.body.contentEditable='true';document.design ...
- Logstash-5.0同步.json文件到ElasticSearch-5.0配置文件
logstash/conf/input-file.conf内容如下: input { file { #监听文件的路径. path => ["E:/data_json/*.json&qu ...
- Google 地图 API V3 针对移动设备进行开发
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- [Unity] Cg标准函数库
- MRDS学习三——机械车的改良(Activity的介绍)
Activity:VPL中化繁为简的工具,可以使得真个VPL容易让人看懂,也能跟好的控制.它就很像把一堆比较复杂但相关的流程组合成一个自定义的Activity. 完成Activity的定义: 第一步: ...
- jvm
-Xms128m表示JVM Heap(堆内存)最小尺寸128MB,初始分配-Xmx512m表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配. 说明:如果-Xmx不指定或者指定偏小,应用 ...