[发明专利]一种获取音频数据的方法及系统有效
申请号: | 201611259886.7 | 申请日: | 2016-12-30 |
公开(公告)号: | CN108269596B | 公开(公告)日: | 2020-03-31 |
发明(设计)人: | 程作汉 | 申请(专利权)人: | 北京酷我科技有限公司 |
主分类号: | G11B20/10 | 分类号: | G11B20/10 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 陈霁 |
地址: | 100084 北京市海淀区农大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 音频 数据 方法 系统 | ||
本发明涉及一种获取音频数据的方法及系统,该方法包括以下步骤:构建音频数据存储结构,初始化后生成音频数据存储数组,以及创建数据提取线程;当待解码的音频数据达到预设长度时则赋予解码音频数据唯一的ID值,并存储到音频数据存储数组中;通过数据提取线程对音频数据存储数组和解码音频数据进行数据提取线程处理,获得音频数据。该系统包括:处理模块、存储模块和获取模块。本发明在获取音频数据的过程中对解码器的工作影响可以忽略,且保存最新的数据,避免内存占用过大;同时,实现了无锁化的音频数据提取,且仅保留最新的音频PCM数据,具有占用内存少,效率高的特点。
技术领域
本发明涉及数据结构技术与音频处理技术领域,具体涉及一种获取音频数据的方法及系统。
背景技术
目前,音频频谱图的生成都需要通过抓取音频解码器生成的PCM(脉冲编码调制)数据,提取的方法一般是通过消息队列、共享内存等方式进行传递,或者在解码线程加锁,以解决数据的生产者和消费者问题。
现在一些数据结构技术与音频处理技术领域的使用方法都需要解码线程做大量的操作,这样操作会影响解码速度导致播放异常,并且从用户的视觉上,现有的频谱图只是定时抽取部分数据进行处理,抓取过多的数据只是造成性能上的浪费。
功能的数据来源于音频PCM数据的提取,而PCM数据由由解码器线程生成并向应用层分发数据,解码器线程是音乐播放器优先级最高的线程之一,因此在解码器线程提取数据应该避免使用同步锁等系统内核级同步工具,且相关操作尽可能不影响解码线程正常工作,且频谱图的绘制是定时提取部分音频数据即可,不宜在内存中保存过多数据。
发明内容
本发明的目的是解决现有技术中提取数据应该避免使用同步锁等系统内核级同步工具,且相关操作尽可能不影响解码线程正常工作;频谱图的绘制应是定时提取部分音频数据即可,不宜在内存中保存过多数据的问题。
为实现上述目的,一方面,本发明提供了一种获取音频数据的方法,该方法包括以下步骤:构建音频数据存储结构,初始化后生成音频数据存储数组,以及创建数据提取线程;当待解码的音频数据达到预设长度时则赋予解码音频数据唯一的ID值,并存储到音频数据存储数组中;通过数据提取线程对音频数据存储数组和解码音频数据进行数据提取线程处理,获得音频数据。
优选地,音频数据存储数组的大小为10。
优选地,当待解码的音频数据达到预设值长度时则赋予解码音频数据唯一的ID值,并存储到音频数据存储数组中的步骤中包括:当保存的解码音频数据达到预设值长度时则赋予解码音频数据唯一的ID值,若音频数据存储数组第一次满载时,则从音频数据存储数组中的第一数组开始更新储存解码音频数据直到音频数据存储数组第二次满载。
其中,预设长度的计算公式如下所示:预设长度=采样点数*音频位深度*音频通道数。
通过数据提取线程对音频数据存储数组和解码音频数据进行数据提取线程处理的步骤中包括:根据预设时间从音频数据存储数组中提取解码音频数据,按时间顺序进行读取。
另一方面,本发明提供了一种获取音频数据的系统,该系统包括:处理模块、存储模块和获取模块。
处理模块,用于构建音频数据存储结构,初始化后生成音频数据存储数组,以及创建数据提取线程。
存储模块,用于当待解码的音频数据达到预设长度时则赋予解码音频数据唯一的ID值,并存储到音频数据存储数组中。
获取模块,用于通过数据提取线程对音频数据存储数组和解码音频数据进行数据提取线程处理,获得音频数据。
优选地,处理模块中的音频数据存储数组的大小为10。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京酷我科技有限公司,未经北京酷我科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611259886.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置