- iOS在线音频流播放
辉辉岁月
前言这是一篇关于在线音频播放的文章,参考自苹果OSX的demo。在移植到iOS后,可以通过iphone播放Mac上面的音频,实现在线播放音频的功能。本文可以学习到socket编程、AudioFileStream转换音频流、AudioQueue播放音频、信号量的使用。正文demo有两个工程,分别是servers和client。servers是OSX的应用,作为服务端,负责发送音频流数据;client
- iOS基于Audio Unit的实时音频录制流程
断点凌er_ZL
前言本文在基于开发项目中的一个语音模块功能所作出的对AudioUnit的使用的简要总结。在iOS中有很多方法可以进行音视频采集。如AVCaptureDevice,AudioQueue以及AudioUnit。其中AudioUnit是最底层的接口,其优点在于功能强大,延迟低;但弊端在于学习成本高,难度大。对于iOS的AudioUnit一共三种设置:1.一个IOUnit(其中remoteiounit是i
- ffmpeg开发播放器学习笔记 - 完善播放控制
程序猿搬砖
视频在播放过程中如果没有基本的播放控制功能,只能从头一直正常的播放到结束是一件非常糟糕的事。该节就来解决这个看起来很简单但又非常重要的问题。image.png✅第一节-HelloFFmpeg✅第二节-软解视频流,渲染RGB24✅第三节-认识YUV✅第四节-硬解码,OpenGL渲染YUV✅第五节-Metal渲染YUV✅第六节-解码音频,使用AudioQueue播放✅第七节-音视频同步第八节-完善播放
- iOS 通过Audio Queue播放音频数据
飛天江郎
这是一篇干货,是直接应用的关于audioqueue播放先看下面一张运行时的流程原理图:playback_callback_function_2x.png上图中的步骤:1、准备播放的音频队列,为每个音频队列缓冲区(Buffer)进行数据填充;2、当启用AudioQueueStart时,即刻进行播放数据;3、将队列里第一个缓冲的buffer发送到音频输出区4、播放队列进入循环模式,音频队列可以进行下一
- 分享:iOS音频播放系列之AudioFileStream
秃头少女_
本来说好是要在第三篇中讲AudioFileStream和AudioQueue,但写着写着发现光AudioFileStream就好多内容,最后还是决定分篇介绍,这篇先来说一下AudioFileStream,下一篇计划说一下和AudioFileStream类似的AudioFile,下下篇再来说AudioQueue。在本篇那种将会提到计算音频时长duration和音频seek的方法,这些方法对于CBR编
- iOS AudioQueue 音量大小
cattsoft
1、AudioQueue代理回调获取音频数据:2、传入data数据获取音量大小//.h文件//AudioQueueTool.h//语音//楚高尚//Createdbysylincomon2019/11/29.//Copyright©2019sylincom.Allrightsreserved.//#import#definekNumberAudioQueueBuffers3//定义了三个缓冲区NS
- iOS ogg音频播放 AudioQueue播放速度
车德平
在iOS中播放音频一般情况下都是使用AVPlayer,很方便,也能满足大部分使用情况。但是如果需要播放的音频是ogg格式的,AVPlayer就基本没有办法播放,因为iOS目前是不支持直接播放ogg格式的音频的,想要播放需要靠AudioQueue的帮助。我现在用的是IDZAQAudioPlayer,作者是基于AudioQueue实现的音频播放,具体代码可以去GitHub上搜索。虽然原作者有几个年头没
- macOS coreAudio 之 AudioQueue 播放本地音频文件
jimboRen
macosAudioQueueCoreAudio
macOS的音频模块使用还是和iOS有细微差别的。今天记录是的是使用AudioQueue配合AudioFile进行播放macOS本地音频文件本文打仓库代码为:JBPlayLocalMusicFile.mCoreAudio作为Apple音频系统中音频库的集合,今天需要使用到的库为:AudioQueue位于,作为输出模块,输入音频到系统默认扬声器AudioFile位于,读取本地音频文件,然后将读取的B
- [Ray's音视频01]Audio Units录制音频
xlw92
iOS录音根据开发文档的图可知,iOS音频相关的用的比较多的自顶向下的又AVFoundation->AudioToolBox->AudioUnit技术选择上如果是录音然后获取内存中音频的数据,然后进行网络传输或者存本地,那么AudioQueue或者AudioUnit都能做到。因为之后可能会用到一些混响之类的,所以以下说明都是根据AudioUnit来讲述的。文章会根据代码来引出每个参数涉及到的知识点
- 利用AudioQueue做音频采集编码和播放(附完整demo)
iosmedia
概述在直播应用开发中我们经常需要实时对音频做处理,比如音频录制、播放、编码等。本文介绍的是使用AudioQueue对音频做上述处理。PCM和AAC是音频的两种不同的格式,PCM是无损音频数据,AAC是压缩编码过的数据。我们在介绍AudioQueue的用法之前,首先对音频的这两种格式做大致了解。关于音频的基础请参考音频基础知识文章目录:AAC音频AudioQueue录制音频原始帧PCM数据Audio
- AAC、H264网络流播放-AAC(AudioToolBox)
Liu_sr
AAC音频关于AudioQueue“收到数据然后加入audioqueue后回调仍在执行,但就是没声定时器,重新初始化的办法解决
- iOS Audio Queue的使用
tree_free
AudioQueue介绍苹果官方文档解释AudioQueue如下:OverviewThisdocumentdescribesAudioQueueServices,aCprogramminginterfaceintheAudioToolboxframework,whichispartofCoreAudio.Anaudioqueueisasoftwareobjectyouuseforrecording
- iOS Audio Queues获取音频数据并写入文件
Good_Citizen
AudioQueue的工作模式在使用AudioQueue之前首先必须理解其工作模式,它之所以这么命名是因为在其内部有一套缓冲队列(BufferQueue)的机制。在AudioQueue启动之后需要通过AudioQueueAllocateBuffer生成若干个AudioQueueBufferRef结构,这些Buffer将用来存储即将要播放的音频数据,并且这些Buffer是受生成他们的AudioQue
- iOS音频编程之实时语音通信(对讲机功能)
半岛夏天
需求:手机通过Mic采集PCM编码的原始音频数据,将PCM转换为AAC编码格式,通过MultipeerConnectivity框架连接手机并发送AAC数据,在接收端使用AudioQueue播放收到的AAC音频。技术点AACConverter,AudioUnit,MultipeerConnectivity音频设置对音频以44.1KHZ的采样率来采样,以64000的比特率对PCM进行AAC转码1)对A
- ios 使用audioQueue 录音以及播放 (pcm)
xixi9527
希望能给大家一些帮助,或者得到大神们的建议.audioqueue是以队列的方式处理数据.一录音:AudioQueuesforRecording一个用于record的audioqueue,需要使用AudioQueueNewInput方法创建,它的具体结构如图:上面是苹果对于audioqueue录音的步骤解释.(个人理解如下)(1)麦克风设备收到音频设备(2)音频设备传数据到buffer(3)buff
- iOS使用AudioUnit/AudioQueue实现耳返功能
magicMushroom
首先理清思路我这边使用AudioUnit录音,AudioQueue播放1、创建AudioUnit对象,并初始化设置参数等2、创建AudioQueue对象,初始化并设置参数3、在AudioUnit回调方法中获取到采集到的数据,并将获取到的数据喂给AudioQueue的容器中,并给它播放思路是不是很清晰了需理解的重点1、AudioQueue播放是从2-3个(最好3个)AudioQueueBufferR
- AudioQueue 知识
无名lxl
什么是音频队列?在iOS和MacOSX中,音频队列是一个用来录制和播放音频的软件对象,他用AudioQueueRef这个不透明数据类型来表示,该类型在AudioQueue.h头文件中声明。音频队列完成以下工作:连接音频硬件内存管理根据需要为已压缩的音频格式引入编码器媒体的录制或播放你可以将音频队列配合其他CoreAudio的接口使用,再加上相对少量的自定义代码就可以在你的应用程序中创建一套完整的数
- 基于AudioQueue PCM音频播放器
Mirko1990
gitHub链接地址:https://github.com/WangMing1998/AudioQueuePlayer1.pcm播放器主要实现类,更具体的请参考Demoimport"WMPlayer.h"importimportimportdefineMIN_SIZE_PER_FRAME2000//每个包的大小defineQUEUE_BUFFER_SIZE3//缓冲器个数@interfaceWMP
- 常见音视频播放流程
谁与望天堂
本地文件(mp4,mkv等)或者网络视频流----ffmpegdemux---->H.264stream----VideoToolbox---->YUV----OpenGLES2---->Screen本地文件(mp4,mkv等)或者网络视频流----ffmpegdemux---->AACstream----decoder---->PCM----AudioQueue/AudioUnit---->Sp
- ffmpeg开发播放器学习笔记 - 解码音频,使用AudioQueue 播放
程序猿搬砖
该节是ffmpeg开发播放器学习笔记的第六节《ffmpeg解码音频,使用AudioQueue播放》ffmpeg音频解码后的数据是PCM(PulseCodeModulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。对于我们最常说的“无损音频”来说,一般都是指传统CD格式中的16bit/44.1kHz采样率的文件格式,而知所以
- 使用Audio Queue Services录制和播放音频
zhonglaoban
AudioQueueServices介绍这个文档会分为以下3个部分介绍AudioQueueServices:AudioQueueServices的结构和处理逻辑使用AudioQueueServices录制音频使用AudioQueueServices播放音频AudioQueueServices的结构和处理逻辑audioqueue,它是一个在AudioQueue.h中的。用来连接硬件(麦克风和扬声器)
- iPhone microphone输入事件捕获
gddsky
s-iphone
目的:利用麦克风做为一种事件的输入方式核心:通过AudioSession与AudioQueue实现麦克风输入的数据捕捉.开启AudioSession:1.AudioSessionInitialize2.AudioSessionSetProperty(kAudioSessionProperty_AudioCategory)3.AudioSessionSetActive建立声音格式:1.声音格式的数据
- iOS音频AudioQueue
不负红颜
IOS
本篇是AudioQueue的官方文档的笔记。AudioQueueServices可以play和record以下三类任何audiodata:LinearPCM.AnycompressedformatsupportednativelyontheAppleplatformyouaredevelopingfor.Anyotherformatforwhichauserhasaninstalledcodec.
- iOS音频播放(三):AudioFileStream
anxiang1989
iOS
(本文转自码农人生)前言本来说好是要在第三篇中讲AudioFileStream和AudioQueue,但写着写着发现光AudioFileStream就好多内容,最后还是决定分篇介绍,这篇先来说一下AudioFileStream,下一篇计划说一下和AudioFileStream类似的AudioFile,下下篇再来说AudioQueue。本篇将会提到计算音频时长duration和音频seek的方法,这
- iOS Opus 编译问题记录
tian-heng
iOS开发
前情提要:iOS语音实时转文字方案分析:方案一:本地通过Speech框架实现,效果很好!参考这位老兄:Speech语音转文字.GitHub:https://github.com/OuDuShu/SpeechTest.方案二:为了训练语音模型,通过AudioQueue录音,通过Opus对pcm编码,通过WebSocket上传后台,返回文字展示介绍下第二个方案:重点在于Opus编码iOS下Opus编译
- 自己实现一个简单的网络音乐mp3播放器
diankuini1374
大繁至简,把思路搞清楚才是最重要的,如何去做依托于使用什么来实现这项功能列出我使用的基本类NSURLSessionDataTask数据获取类NSFileHandle数据缓存和数据读取类AudioFileStream音频文件解析类AudioQueue音频播放类我的实现过程1.触发播放功能2.创建数据管理模块:主管数据下载(网络歌曲)和数据提供管理3.音频原数据回调,异步提供给音频数据池4.解析音频数
- ios之audio unit的录音和播放一起,解决audioqueue播放PCM延迟问题
竹筒
ios开发
因为用audioqueue的录音播放,或者用audioqueue录音,openal播放都有延迟。然后用底层些的audiounit,果然延迟问题就好很多了,至少一边录一边播的问题可以很好的解决。。有不少audiounit的三方库,暂时没去细研究,查了点,自己修改了下。需要在进行录音的时候和播放单开线程。。之前有问题没明白,卡了一天突然明白了。。。直接上代码来得方便。。。多余的代码和变量也不在进行删除
- iOS音频播放学习(4)
Nov柒月
iOS学习
AudioQueueAudioQueue功能:连接音频硬件;管理内存;调用编解码器;播放或者录音控制AudioQueue:AudioQueueStartOSStatusAudioQueueStart(AudioQueueRefinAQ,//需要开启的AudioQueueconstAudioTimeStamp*inStartTime);//开启的时间。使用AudioTimeStamp的mSample
- iOS音频编程之实时语音通信
IT_yangjing
在CSDN上显示的代码格式不全,在githubblog地址显示正确iOS音频编程之实时语音通信需求:手机通过Mic采集PCM编码的原始音频数据,将PCM转换为AAC编码格式,通过MultipeerConnectivity框架连接手机并发送AAC数据,在接收端使用AudioQueue播放收到的AAC音频音频设置对音频以44.1KHZ的采样率来采样,以64000的比特率对PCM进行AAC转码1)对AV
- AudioQueue
攻城狮Corn
ios
//=========================播放==============================//所属类AudioPlayerAudioQueueRefmQueue;AudioStreamBasicDescriptionmDataFormat;//创建AudioQueueAudioQueueNewOutput(&mDataFormat,AQBufferCallback,(_
- 二分查找排序算法
周凡杨
java二分查找排序算法折半
一:概念 二分查找又称
折半查找(
折半搜索/
二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步
- java中的BigDecimal
bijian1013
javaBigDecimal
在项目开发过程中出现精度丢失问题,查资料用BigDecimal解决,并发现如下这篇BigDecimal的解决问题的思路和方法很值得学习,特转载。
原文地址:http://blog.csdn.net/ugg/article/de
- Shell echo命令详解
daizj
echoshell
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串:
echo "It is a test"
这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo Itis a test 2.显示转义
- Oracle DBA 简单操作
周凡杨
oracle dba sql
--执行次数多的SQL
select sql_text,executions from (
select sql_text,executions from v$sqlarea order by executions desc
) where rownum<81;
&nb
- 画图重绘
朱辉辉33
游戏
我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。
在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们
- 线程之初体验
西蜀石兰
线程
一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。
你可以在线程类的run()方法中定义自己的任务,就跟正常的Ja
- linux集群互相免登陆配置
林鹤霄
linux
配置ssh免登陆
1、生成秘钥和公钥 ssh-keygen -t rsa
2、提示让你输入,什么都不输,三次回车之后会在~下面的.ssh文件夹中多出两个文件id_rsa 和 id_rsa.pub
其中id_rsa为秘钥,id_rsa.pub为公钥,使用公钥加密的数据只有私钥才能对这些数据解密 c
- mysql : Lock wait timeout exceeded; try restarting transaction
aigo
mysql
原文:http://www.cnblogs.com/freeliver54/archive/2010/09/30/1839042.html
原因是你使用的InnoDB 表类型的时候,
默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,
因为有的锁等待超过了这个时间,所以抱错.
你可以把这个时间加长,或者优化存储
- Socket编程 基本的聊天实现。
alleni123
socket
public class Server
{
//用来存储所有连接上来的客户
private List<ServerThread> clients;
public static void main(String[] args)
{
Server s = new Server();
s.startServer(9988);
}
publi
- 多线程监听器事件模式(一个简单的例子)
百合不是茶
线程监听模式
多线程的事件监听器模式
监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到
创建多线程的事件监听器模式 思路:
1, 创建线程并启动,在创建线程的位置设置一个标记
2,创建队
- spring InitializingBean接口
bijian1013
javaspring
spring的事务的TransactionTemplate,其源码如下:
public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean{
...
}
TransactionTemplate继承了DefaultT
- Oracle中询表的权限被授予给了哪些用户
bijian1013
oracle数据库权限
Oracle查询表将权限赋给了哪些用户的SQL,以备查用。
select t.table_name as "表名",
t.grantee as "被授权的属组",
t.owner as "对象所在的属组"
- 【Struts2五】Struts2 参数传值
bit1129
struts2
Struts2中参数传值的3种情况
1.请求参数绑定到Action的实例字段上
2.Action将值传递到转发的视图上
3.Action将值传递到重定向的视图上
一、请求参数绑定到Action的实例字段上以及Action将值传递到转发的视图上
Struts可以自动将请求URL中的请求参数或者表单提交的参数绑定到Action定义的实例字段上,绑定的规则使用ognl表达式语言
- 【Kafka十四】关于auto.offset.reset[Q/A]
bit1129
kafka
I got serveral questions about auto.offset.reset. This configuration parameter governs how consumer read the message from Kafka when there is no initial offset in ZooKeeper or
- nginx gzip压缩配置
ronin47
nginx gzip 压缩范例
nginx gzip压缩配置 更多
0
nginx
gzip
配置
随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢?
gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用
- java-13.输入一个单向链表,输出该链表中倒数第 k 个节点
bylijinnan
java
two cursors.
Make the first cursor go K steps first.
/*
* 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点
*/
public void displayKthItemsBackWard(ListNode head,int k){
ListNode p1=head,p2=head;
- Spring源码学习-JdbcTemplate queryForObject
bylijinnan
javaspring
JdbcTemplate中有两个可能会混淆的queryForObject方法:
1.
Object queryForObject(String sql, Object[] args, Class requiredType)
2.
Object queryForObject(String sql, Object[] args, RowMapper rowMapper)
第1个方法是只查
- [冰川时代]在冰川时代,我们需要什么样的技术?
comsci
技术
看美国那边的气候情况....我有个感觉...是不是要进入小冰期了?
那么在小冰期里面...我们的户外活动肯定会出现很多问题...在室内呆着的情况会非常多...怎么在室内呆着而不发闷...怎么用最低的电力保证室内的温度.....这都需要技术手段...
&nb
- js 获取浏览器型号
cuityang
js浏览器
根据浏览器获取iphone和apk的下载地址
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" content="text/html"/>
<meta name=
- C# socks5详解 转
dalan_123
socketC#
http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html 这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,
- 运维 Centos问题汇总
dcj3sjt126com
云主机
一、sh 脚本不执行的原因
sh脚本不执行的原因 只有2个
1.权限不够
2.sh脚本里路径没写完整。
二、解决You have new mail in /var/spool/mail/root
修改/usr/share/logwatch/default.conf/logwatch.conf配置文件
MailTo =
MailFrom
三、查询连接数
- Yii防注入攻击笔记
dcj3sjt126com
sqlWEB安全yii
网站表单有注入漏洞须对所有用户输入的内容进行个过滤和检查,可以使用正则表达式或者直接输入字符判断,大部分是只允许输入字母和数字的,其它字符度不允许;对于内容复杂表单的内容,应该对html和script的符号进行转义替换:尤其是<,>,',"",&这几个符号 这里有个转义对照表:
http://blog.csdn.net/xinzhu1990/articl
- MongoDB简介[一]
eksliang
mongodbMongoDB简介
MongoDB简介
转载请出自出处:http://eksliang.iteye.com/blog/2173288 1.1易于使用
MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。
另外,不
- zookeeper windows 入门安装和测试
greemranqq
zookeeper安装分布式
一、序言
以下是我对zookeeper 的一些理解: zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”。
栗子1号:
假设我是一家KTV的老板,我同时拥有5家KTV,我肯定得时刻监视
- Spring之使用事务缘由(2-注解实现)
ihuning
spring
Spring事务注解实现
1. 依赖包:
1.1 spring包:
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.
- iOS App Launch Option
啸笑天
option
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。
launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。
1、若用户直接
- jdk与jre的区别(_)
macroli
javajvmjdk
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你
- Updates were rejected because the tip of your current branch is behind
qiaolevip
学习永无止境每天进步一点点众观千象git
$ git push joe prod-2295-1
To
[email protected]:joe.le/dr-frontend.git
! [rejected] prod-2295-1 -> prod-2295-1 (non-fast-forward)
error: failed to push some refs to '
[email protected]
- [一起学Hive]之十四-Hive的元数据表结构详解
superlxw1234
hivehive元数据结构
关键字:Hive元数据、Hive元数据表结构
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。
文章最后面,会以一个示例来全面了解一下,
- Spring 3.2.14,4.1.7,4.2.RC2发布
wiselyman
Spring 3
Spring 3.2.14、4.1.7及4.2.RC2于6月30日发布。
其中Spring 3.2.1是一个维护版本(维护周期到2016-12-31截止),后续会继续根据需求和bug发布维护版本。此时,Spring官方强烈建议升级Spring框架至4.1.7 或者将要发布的4.2 。
其中Spring 4.1.7主要包含这些更新内容。