文档章节

使用AudioConverterFillComplexBuffer函数时返回-50 和17....

自在不在
 自在不在
发布于 2016/02/25 09:38
字数 266
阅读 115
收藏 0

1.在使用AudioConverterNewSpecific() 创建转换器的时候输入流格式与输出流格式的声道数设置不同会出现-50

    AudioStreamBasicDescription inputFormat  = {0}; // 输入音频格式
    inputFormat.mSampleRate = 44100.00;
    inputFormat.mFormatID = kAudioFormatLinearPCM;
    inputFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
    inputFormat.mChannelsPerFrame = 1;
    
    AudioStreamBasicDescription outputFormat = {0}; // 输出音频格式
    outputFormat.mChannelsPerFrame = 1;

2.outBufferList.mBuffers[0].mDataByteSize    未设置

   outBufferList.mBuffers[0].mData                  未指定空间  会出现-50

//获取最大的size
    UInt32 size = sizeof(UInt32);
    UInt32 maxOutputSize;
    AudioConverterGetProperty(_myConverter,
                              kAudioConverterPropertyMaximumOutputPacketSize,
                              &size,
                              &maxOutputSize);
    // 设置缓冲区大小
    outBufferList.mBuffers[0].mDataByteSize = maxOutputSize;
    outBufferList.mBuffers[0].mData = aacData;

//如果你有其他方法或者解释请联系我,谢谢
//现在我碰到一个问题:转码后的bufferList中的outBufferList.mBuffers[0].mData为空,解决之后会再更新。

//更新:转码后的bufferList中的outBufferList.mBuffers[0].mData为空

才想到要更新,上次的问题关键在于,输入的音频长度上。应该在转码输入之前做一次缓冲,将传入数据控制在1024个样点即可解决问题。

© 著作权归作者所有

自在不在
粉丝 1
博文 24
码字总数 8518
作品 0
深圳
iOS工程师
私信 提问
Audio Unit播放aac/m4a/mp3等文件

前言 相关文章: 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioToolbox播放AAC HLS点播实现(H.264和AAC码流) HLS推流的实现(iOS和OS X系统...

落影loyinglin
2017/10/09
0
0
iOS下 AAC 音频编码

编码结构图 前言 iOS下Apple为我们提供了非常方便的音频编解码工具AudioToolbox。该工具中包含了常见的编解码库,如AAC、iLBC、OPUS等。今天我们就介绍一下如何使用 AudioToolbox 进行AAC音频...

音视频直播技术专家
2017/10/14
0
0
线程间同步之信号量实现环形buf

一.概述: 信号量是一个非负整数的计数器,它通过计数器来实现多线程对临界资源的顺序访问,从而实现线程间的同步。它与进程间通信的信号量不同,进程间通信的信号量是一个信号量集,而线程间...

余二五
2017/11/07
0
0
block一点也不神秘————如何利用block进行回调

我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机...

长平狐
2013/09/17
3.2K
1
[置顶] block一点也不神秘————如何利用block进行回调

我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机...

北方人在上海
2016/04/01
8
0

没有更多内容

加载失败,请刷新页面

加载更多

4.01、Linux异常

1、无法连接虚拟设备ide1:0,因为主机上没有响应的设备 解决方法:找到“虚拟机” —— 打开“虚拟机设置” —— 单击“CD/DVD(IDE)”,右侧选中“使用ISO映像文件”,然后选中自己的镜像,重启...

静以修身2025
40分钟前
1
0
不允许有匹配 "[xX][mM][lL]" 的处理指令目标

Bug解决方案:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标 Caused by: org.xml.sax.SAXParseException; lineNumber: 1; c......

我叫小糖主
43分钟前
1
0
Mysql InnoDB 行锁和表锁介绍

mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表...

嘴角轻扬30
43分钟前
2
0
springboot+jpa 错误信息org.springframework.beans.factory.BeanCreationException

报错信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/a......

冥焱
今天
1
0
威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟

近日,阿里云安全发现了一个使用未授权访问漏洞部署恶意Docker镜像进行挖矿的僵尸网络团伙。我们给这一团伙取名为Xulu,因为该团伙使用这个字符串作为挖矿时的用户名。 Xulu并不是第一个攻击...

迷你芊宝宝
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部