一种音频设备中实现混音的方法

文档序号:2832201阅读:364来源:国知局
专利名称:一种音频设备中实现混音的方法
一种音频设备中实现混音的方法
技术领域
本发明属于音频设备领域,特别是指一种音频设备中实现混音的方法。背景技术
多媒体设备中接键音是其必备功能,但由于系统不具备混音功能,所以
无法实现听音乐的同时又能发出按键音。例如,在听MP3音乐时,此时听不 到按键音。
发明内容
本发明所要解决的技术问题在于提供一种音频设备中实现混音的方法, 在多任务系统中实现了软件混音功能,可以同时听到多种声音。 本发明采用以下技术方案解决上述技术问题 一种音频设备中实现混音的方法,包括如下步骤 步骤100:解码音频数据,包括如下步骤 步骤101:开始;
步骤102:解码器初始化,判断是否成功?是,转入步骤103;否,转入 步骤111;
步骤103:申请一个FIFO,判断是否成功?是,转入步骤104;否,转 入步骤111;
步骤104:暂停播放?是,转入步骤105;否,转入步骤106; 步骤105: FIFO满?是,转入步骤106;否,转入步骤107; 步骤106: OSTIMEDELAY; 步骤107:解码,并把数据存到FIFO中;
步骤108:判断解码是否成功?是,转入步骤109;否,转入步骤111; 步骤109:判断是否结束解码是,转入步骤110;否,转入步骤 步骤110;反初始化解码器,释放FIFO空间;步骤111:结束任务;
步骤200:将多个解码后的数据混合在一起,包括如下步骤 步骤201:开始;
步骤202:申请一个FIFC^A,成功?是,转入步骤203;否,转入步骤
211;
步骤203:申请一个X长度的BUF—A,成功?是,转入步骤204;否, 转入步骤211;
步骤204:注册DMA中断函数,并启动DMA;
步骤205:所有音频任务的FIFO都不为空?是,转入步骤206;否,转 入步骤207;
步骤206: FIFO—A满?是,转入步骤207;否,转入步骤208; 步骤207: OSTIMEDELAY;
步骤208:从所有音频的FIFO中取出数据进行叠加运算,并存到FIFO—A
中;
步骤209:判断是否停止混音?是,转入步骤210;否,转入步骤205; 步骤210:停止DMA,释放FIFO_A和BUF—A空间; 步骤211:结束任务;
步骤300:通过DMA将混合数据传到IIS控制器,包括如下步骤 步骤301:开始;
步骤302:判断是否有已发送的FIFO—A的空间未被释放吗?是,转入步 骤303;否,转入步骤304;
步骤303:释放FIFO—A已被取出数据的空间;
步骤304:判断是否FIFO—A非空?是,转入步骤305;否,转入步骤306; 步骤305:判断FIFO_A已使用的空间是否大于X值?是,转入步骤307; 否,转入步骤309;
步骤306:将BUF—A都填O;转入步骤308:
步骤307:从FIFC^A读出X长度的数据到BUF—A,标识FIFO—A有X 长度空间未被释放;步骤308:配置并启动DMA,将BUF一A的X长度的数据传给IIS控制
器;
步骤309:从FIFO—A读出已使用的空间Y的长度数据到BUF_A,标识 FIFO—A有Y长度空间未被释放,配置并启动DMA,将BUF—A的Y长度的 数据传给IIS控制器;
步骤310:中断结束退出。
本发明一种音频设备中实现混音的方法的优点在于通过解码多个音频 数据,将多个解码后的数据混合在一起,然后通过DMA传到IIS控制器,实 现了混音。可在听音乐的同时发出按^l音。

下面参照附图结合实施例对本发明作进 一 步的描述。 图l是本发明工作流程示意图。 图2是本发明中解码音频数据工作流程示意图。 图3是本发明中混音任务工作流程示意图。
图4是本发明中通过DMA将混合数据传到IIS控制器工作流程示意图。具体实施方式

一种音频设备中实现混音的方法,主要是控制数据流的方向,如图l所 示,其包括如下步骤步骤100:解码音频数据;步骤200:将多个解码后的 数据混合在一起;步骤300:通过DMA将混合数据传到IIS控制器。
请参阅图2所示,是本发明中解码音频数据工作流程示意图。包括如下 步骤
步骤101:开始;
步骤102:解码器初始化,判断是否成功?是,转入步骤103;否,转入 步骤111;
步骤103:申请一个FIFO,判断是否成功?是,转入步骤104;否,转 入步骤111;
步骤104:暂停播放?是,转入步骤105;否,转入步骤106; 步骤105: FIFO满?是,转入步骤106;否,转入步骤107;步骤106: OSTIMEDELAY;
步骤107:解码,并把数据存到FIFO中;
步骤108:判断解码是否成功?是,转入步骤109;否,转入步骤111; 步骤109:判断是否结束解码是,转入步骤110;否,转入步骤104; 步骤110;反初始化解码器,释放FIFO空间; 步骤lll:结束任务。
请参阅图3所示,是本发明中混音任务工作流程示意图,即将多个解码 后的数据混合在一起。包括如下步骤 步骤201:开始;
步骤202:申请一个FIFO—A,成功?是,转入步骤203;否,转入步骤
211;
步骤203:申请一个X长度的BUF—A,成功?是,转入步骤204;否, 转入步骤211;
步骤204:注册DMA中断函数,并启动DMA;
步骤205:所有音频任务的FIFO都不为空?是,转入步骤206;否,转 入步骤207;
步骤206: FIFO—A满?是,转入步骤207;否,转入步骤208; 步骤207: OSTIMEDELAY;
步骤208:从所有音频的FIFO中取出数据进行叠加运算,并存到FIFO—A
中;
步骤209:判断是否停止混音?是,转入步骤210;否,转入步骤205; 步骤210:停止DMA,释放FIFO_A和BUF—A空间; 步骤211:结束任务。
请参阅图4所示,是本发明中通过DMA将混合数据传到IIS控制器工作 流程示意图。包括如下步骤 步骤301:开始;
步骤302:判断是否有已发送的FIFO—A的空间未被释放吗?是,转入步 骤303;否,转入步骤304;步骤303:释放FIFO—A已被取出数据的空间;
步骤304:判断是否FIFO—A非空?是,转入步骤305;否,转入步骤306; 步骤305:判断FIFO_A已使用的空间是否大于X值?是,转入步骤307; 否,转入步骤309;
步骤306:将BUF—A都填0;转入步骤308:
步骤307:从FIFC^A读,出X长度的数据到BUF—A,标识FIFC^A有X 长度空间未被释放;
步骤308:配置并启动DMA,将BUF—A的X长度的数据传给IIS控制
步骤309:从FIFO_A读出已使用的空间Y的长度数据到BUF—A,标识 FIFO—A有Y长度空间未被释放,配置并启动DMA,将BUF—A的Y长度的 数据传给IIS控制器;
步骤310:中断结束退出。
本发明在多任务系统中实现了软件混音功能,可以同时听到多种声音, 在听音乐的同时,可以发出按键音。
权利要求
1、一种音频设备中实现混音的方法,其特征在于包括如下步骤步骤100解码音频数据,包括如下步骤步骤101开始;步骤102解码器初始化,判断是否成功?是,转入步骤103;否,转入步骤111;步骤103申请一个FIFO,判断是否成功?是,转入步骤104;否,转入步骤111;步骤104暂停播放?是,转入步骤105;否,转入步骤106;步骤105FIFO满?是,转入步骤106;否,转入步骤107;步骤106OSTIMEDELAY;步骤107解码,并把数据存到FIFO中;步骤108判断解码是否成功?是,转入步骤109;否,转入步骤111;步骤109判断是否结束解码是,转入步骤110;否,转入步骤104;步骤110;反初始化解码器,释放FIFO空间;步骤111结束任务;步骤200将多个解码后的数据混合在一起,包括如下步骤步骤201开始;步骤202申请一个FIFO_A,成功?是,转入步骤203;否,转入步骤211;步骤203申请一个X长度的BUF_A,成功?是,转入步骤204;否,转入步骤211;步骤204注册DMA中断函数,并启动DMA;步骤205所有音频任务的FIFO都不为空?是,转入步骤206;否,转入步骤207;步骤206FIFO_A满?是,转入步骤207;否,转入步骤208;步骤207OSTIMEDELAY;步骤208从所有音频的FIFO中取出数据进行叠加运算,并存到FIFO_A中;步骤209判断是否停止混音?是,转入步骤210;否,转入步骤205;步骤210停止DMA,释放FIFO_A和BUF_A空间;步骤211结束任务;步骤300通过DMA将混合数据传到IIS控制器,包括如下步骤步骤301开始;步骤302判断是否有已发送的FIFO_A的空间未被释放吗?是,转入步骤303;否,转入步骤304;步骤303释放FIFO_A已被取出数据的空间;步骤304判断是否FIFO_A非空?是,转入步骤305;否,转入步骤306;步骤305判断FIFO_A已使用的空间是否大于X值?是,转入步骤307;否,转入步骤309;步骤306将BUF_A都填0;转入步骤308步骤307从FIFO_A读出X长度的数据到BUF_A,标识FIFO_A有X长度空间未被释放;步骤308配置并启动DMA,将BUF_A的X长度的数据传给IIS控制器;步骤309从FIFO_A读出已使用的空间Y的长度数据到BUF_A,标识FIFO_A有Y长度空间未被释放,配置并启动DMA,将BUF_A的Y长度的数据传给IIS控制器;步骤310中断结束退出。
全文摘要
本发明是关于一种音频设备中实现混音的方法,主要包括如下步骤解码音频数据;将多个解码后的数据混合在一起;通过DMA将混合数据传到IIS控制器。本发明在多任务系统中实现了软件混音功能,可以同时听到多种声音,在听音乐的同时,可以发出按键音。
文档编号G10L19/00GK101661748SQ200910112508
公开日2010年3月3日 申请日期2009年9月15日 优先权日2009年9月15日
发明者洪锦坤 申请人:福州瑞芯微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1