[发明专利]多媒体播放器的音轨切换方法、系统及对应播放器和设备在审
申请号: | 201410849953.5 | 申请日: | 2014-12-29 |
公开(公告)号: | CN104505109A | 公开(公告)日: | 2015-04-08 |
发明(设计)人: | 刘小燕;陈小川 | 申请(专利权)人: | 珠海全志科技股份有限公司 |
主分类号: | G11B27/10 | 分类号: | G11B27/10;G11B20/10 |
代理公司: | 广州嘉权专利商标事务所有限公司44205 | 代理人: | 谭志强 |
地址: | 519000广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多媒体 播放 音轨 切换 方法 系统 对应 设备 | ||
1.一种多媒体播放器的音轨切换方法,其特征在于,包括:
(1)根据码流所包含的音轨的总个数n创建相同个数的先进先出的数据管理模块StreamManager[n-1],所述数据管理模块StreamManager[n-1]用于对音频数据的进行存储管理;
(2)对于数据解析端所传送的音频数据,根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中,其中,0<=m<n;
(3)在用户播放时,若用户选择的当前需要播放的音频数据的音轨索引值为i,则将记录当前音轨索引值的变量k赋值为i,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=i<n;
(4)清除每个数据管理模块StreamManager[n-1]中过时的音频数据。
2.根据权利要求1所述的音轨切换方法,其特征在于,所述方法还包括:
(5)当用户进行音轨切换时,将当前播放的音轨索引值i修改为需要播放的音轨索引值j,并将记录当前音轨索引值的变量k赋值为j,之后,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=j<n。
3.根据权利要求2所述的音轨切换方法,其特征在于,所述创建的每个数据管理模块StreamManager[n-1]包括有以下用于对音频数据对应的数据帧进行存储管理的变量:
用于限定允许存储的最大数据帧个数nMaxFrameNum;
所存储的有效数据帧个数nValidFrameNum;
对应的用于存储数据帧信息的结构体数组 pFrames[nMaxFrameNum-1],所述结构体数组 pFrames[nMaxFrameNum-1]包含有以下用于描述数据帧信息的变量:
数据帧存储的地址指针pData,
数据帧的存储长度 nLength,和
数据帧对应的显示时间戳 nPts;
将要读取的数据帧在pFrames数组中的位置索引nReadPos,且0<=nReadPos <nMaxFrameNum;
将要写入的数据帧在pFrames数组中的位置索引nWritePos,且0<=nWritePos <nMaxFrameNum;
将要移除的数据帧在pFrames数组中的位置索引nFlushPos。
4.根据权利要求3所述的音轨切换方法,其特征在于,所述步骤(2)中,当根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中时,StreamManager[m]首先根据该音频数据对应数据帧的长度申请一段内存空间,再将音频数据存储至所申请的内存空间,同时,该内存空间的地址会被存储至对应pFrames[nWritePos]的pData中,该音频数据对应数据帧的长度和显示时间戳分别存储在pFrames[nWritePos]的nLength和nPts变量中,然后将nValidFrameNum加1,nWritePos 加1,若nWritePos 等于nMaxFrameNum,则将nWritePos 置为0。
5.根据权利要求4所述的音轨切换方法,其特征在于,所述步骤(3)和步骤(5)中,当需要从StreamManager[k]中读取对应的音频数据时,具体包括:
从StreamManager[k]的pFrames[nReadPos]中得到对应音频数据的数据帧的内存空间地址、数据长度和数据的显示时间戳, 同时将nValidFrameNum减1, nReadPos 加1, 若nReadPos等于nMaxFrameNum, 则将nReadPos 置为0。
6.根据权利要求4或5所述的音轨切换方法,其特征在于,所述步骤(4)中,当需要清除数据管理模块StreamManager[n-1]中过时的音频数据时,对于需要清除的音频数据,对应StreamManager释放为该音频数据申请的内存空间,即清除pFrames[nFlushPos] 的pData对应的内存空间,同时将nFlushPos 加1,若nFlushPos 等于nMaxFrameNum,则将nFlushPos 置为0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海全志科技股份有限公司;,未经珠海全志科技股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410849953.5/1.html,转载请声明来源钻瓜专利网。