webrtc开发中,音频实时对讲采集的问题(ios mic mute)

需求是这样的,在音视频出来后,在按住一个按钮的时候,进行音频传输,按钮松开的时候,不进行音频传输。

代码如下:

1、先在micbtn上绑定两个方法:

[self.micBtn
addTarget:self
action:@selector(onMicBtnDown)
forControlEvents:UIControlEventTouchDown];

[self.micBtn
addTarget:self
action:@selector(onMicBtnUp)
forControlEvents:UIControlEventTouchUpInside];

2、实现里面的控制音频采集的方法:

- (void) onMicBtnUp

{

OSStatus status;

UInt32 inputAvailable=0;

UInt32 size = sizeof(inputAvailable);

AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable,

&size,

&inputAvailable);

UInt32 sessionCategory;

sessionCategory =
kAudioSessionCategory_AmbientSound;

status =
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,

sizeof (sessionCategory),

&sessionCategory);

}

- (void) onMicBtnDown

{

OSStatus status;

UInt32 inputAvailable=0;

UInt32 size = sizeof(inputAvailable);

AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable,

&size,

&inputAvailable);

UInt32 sessionCategory;

sessionCategory =
kAudioSessionCategory_PlayAndRecord;

status =
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,

sizeof (sessionCategory),

&sessionCategory);

}

这样就实现了以上需求。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 02:01:19

webrtc开发中,音频实时对讲采集的问题(ios mic mute)的相关文章

基于Vue公众号开发中的哪些坑 (严重鄙视ios,遇到的坑基本都是在ios中)

一.ios白屏问题ios端基于vue开发的H5无法正常显示,白屏问题1.代码问题确定方法:在ie/edge浏览器中打开,看是否正常显示,如果仍然白屏,可以确定问题解决方法:1.代码中是否使用es6,如果使用,确定使用es6转es5,(npm install babel-polyfillnpm install es6-promise)2.参考 https://www.cnblogs.com/love314159/articles/9355785.html3.以上方法都不行的话,查看源码是在main

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 转载:http://www.cnblogs.com/kenshincui/p/4186022.html#avFoundationCamera --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音

iOS开发系列--音频播放、录音、

音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制.在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework来完成音效和音乐播放. 音效 AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(

iOS开发中遇到过的坑

iOS开发中遇到过的坑 前言 做iOS开发这么长时间以来,遇到过不少难题,也踩过不少坑,本来没想过要写这篇文章,但是鉴于以下三点,笔者决定对遇到过的并且还能回忆起来的问题做个记录. 每次问题解决后,满满的成就感,但是当下一次再遇到时,又是一脸懵逼.这个问题我好像见过,但就是不记得怎么解决,记录下来方便以后查阅. 每次面试的时候,面试官总会问我,你在开发中遇到过哪些问题,怎么解决的?问题嘛,挺多的,但是你要我叙述嘛,我......我......我居然一时想不起来,迷之尴尬????(面试官当时想法:

转: 音频开发中常用到的概念

在音频开发中,下面的这几个概念经常会遇到. (1) 采样率(samplerate) 采样率,注意,目前44100Hz是唯一可以保证兼容所有Android手机的采样率. 采样就是把模拟信号数字化的过程,不仅仅是音频需要采样,所有的模拟信号都需要通过采样转换为可以用0101来表示的数字信号,示意图如下所示: 蓝色代表模拟音频信号,红色的点代表采样得到的量化数值. 采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高. 根据奈奎斯特理论,采样频率只要不低于音频信

WebRTC中Android Demo中的摄像头从采集到预览流程

APPRTC-Demo调用流程 1.CallActivity#onCreate 执行startCall开始连接或创建房间 2.WebSocketClient#connectToRoom 请求一次服务器 3.回调到CallActivity#onConnectToRoom 开始创建对等连接,同时将视频采集对象,本地和远程的VideoSink,相关参数传入 localProxyVideoSink代理本地视频渲染器 remoteSinks是代理远程视频的渲染器,这里是一个集合 videoCapture是

Python在实时嵌入式系统开发中扮演的五个主要角色-悦德财富

Python已经成为相当热门的程序语言.它以著名的Monty Python喜剧组命名,属于面向对象和解释型语言(非编译型).该属性使得Python具有良好的跨平台性,比如Linux和Windows,或是诸如Raspberry Pi等单板计算机.随着Python的日益普及,人们可能会问,在实时嵌入式系统中是否也有Python的一席之地. 答案是肯定的.下面是开发人员发现Python在实时嵌入式系统开发中有可能扮演的五个主要角色. 作用# 1设备调试和控制 在嵌入式软件开发过程中,开发人员常常需要分

一对一直播软件开发中,如何进行推流?

推流环节对直播链路的影响非常大,如果推流网络不稳定,就算前期在音视频处理.编码和封装上做何种优化,用户体验都会很糟糕.因此接下来,小编就以一对一直播软件开发为例,为大家讲述下推流过程中涉及的协议.实现方案等. 更多Android高级面试合集放在github上面了(更多面试文档,项目下载,源码)https://github.com/xiangjiana/androids需要更多项目下载,源码的小伙伴可以点击关于我 联系我获取 一.推流的定义 推流实际上就是在把封装好的视频和音频传输到服务器的过程.

(转) 浅析HTML5在移动应用开发中的使用

(转)浅析HTML5在移动应用开发中的使用 (原)http://www.iteye.com/magazines/67 2012-03-07  来自 UECD.163.com  编辑 wangguo 有38498人浏览 收藏 html5 移动开发 app UI < > 猎头职位: 上海: Junior Product Manager 前言 HTML5的出现让移动平台的竞争由系统平台转向了浏览器之间:移动端的IE.Chrome.FireFox.Safari,亦或是新出现的浏览器,谁能达到在移动端对