CN104505109A - 多媒体播放器的音轨切换方法、系统及对应播放器和设备 - Google Patents
多媒体播放器的音轨切换方法、系统及对应播放器和设备 Download PDFInfo
- Publication number
- CN104505109A CN104505109A CN201410849953.5A CN201410849953A CN104505109A CN 104505109 A CN104505109 A CN 104505109A CN 201410849953 A CN201410849953 A CN 201410849953A CN 104505109 A CN104505109 A CN 104505109A
- Authority
- CN
- China
- Prior art keywords
- data
- voice data
- streammanager
- track
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种多媒体播放器的音轨切换方法、系统及对应播放器和设备,所述方法创建与音轨相同个数的先进先出的数据管理模块;之后,对于数据解析端所传送的音频数据,根据对应的音轨索引值,将音频数据写入对应的数据管理模块中;之后,在用户播放时,将记录当前音轨索引值的变量赋值为当前需要播放的音频数据的音轨索引值,以从数据管理模块中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放;之后,清除每个数据管理模块中过时的音频数据。本发明可采用较小的内存空间保存多路音频数据,并实现音轨的无缝切换。
Description
技术领域
本发明涉及数据存储领域,特别是一种多媒体播放器的音轨切换方法、系统及对应播放器和设备。
背景技术
在多媒体播放过程中,如何实现音频的无缝切换是用户面临的难题。因此,为了存储、管理多路音频数据,必须采用一种高效、实用的数据存储方法。
现有的音轨切换技术主要有两种,一种是只将目前正在播放的音频数据传输到音频缓冲buffer中,进行音轨切换时,先清空音频缓冲buffer,然后数据解析端开始传送属于新音轨的音频数据。但在播放过程中,为了保证音频播放的流畅性,数据解析端会将数据提前送入(一般会提前2s)音频缓冲buffer,这种方式切完音轨后,buffer中新的缓冲数据对应的播放时间会比当前多媒体播放时间晚2s, 切换后会出现接近2s时间的断音,同时这种方式没有考虑不同音轨对应的数据帧的大小,会导致音频buffer的利用率比较低。另一种方法是根据音轨总个数开辟多个音频缓冲buffer,缓冲每一路音频数据。这种方法可以解决上述音轨切换出现断音的问题,但无法解决缓冲buffer利用率低的问题,相反,这种方法申请的buffer越多,buffer利用率越低。
为此,需要一种更有效的方法解决以上两种方法存在的缺陷。
发明内容
为解决上述问题,本发明的目的在于提供一种多媒体播放器的音轨切换方法、系统及对应播放器和设备,动态分配每一路音频中音频数据的内存空间,在有效的利用存储空间的基础上,实现音频的无缝音轨切换。
本发明解决其问题所采用的技术方案是:
一种多媒体播放器的音轨切换方法,包括:
(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]中过时的音频数据。
优选的,所述方法还包括:
(5)当用户进行音轨切换时,将当前播放的音轨索引值i修改为需要播放的音轨索引值j,并将记录当前音轨索引值的变量k赋值为j,之后,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=j<n。
优选的,所述创建的每个数据管理模块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。
优选的,所述步骤(2)中,当根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中时,StreamManager[m]首先根据该音频数据对应数据帧的长度申请一段内存空间,再将音频数据存储至所申请的内存空间,同时,该内存空间的地址会被存储至对应pFrames[nWritePos]的pData中,该音频数据对应数据帧的长度和显示时间戳分别存储在pFrames[nWritePos]的nLength和nPts变量中,然后将nValidFrameNum加1,nWritePos 加1,若nWritePos 等于nMaxFrameNum,则将nWritePos 置为0。
优选的,所述步骤(3)和步骤(5)中,当需要从StreamManager[k]中读取对应的音频数据时,具体包括:
从StreamManager[k]的pFrames[nReadPos]中得到对应音频数据的数据帧的内存空间地址、数据长度和数据的显示时间戳, 同时将nValidFrameNum减1, nReadPos 加1, 若nReadPos等于nMaxFrameNum, 则将nReadPos 置为0。
优选的,所述步骤(4)中,当需要清除数据管理模块StreamManager[n-1]中过时的音频数据时,对于需要清除的音频数据,对应StreamManager释放为该音频数据申请的内存空间,即清除pFrames[nFlushPos] 的pData对应的内存空间,同时将nFlushPos 加1,若nFlushPos 等于nMaxFrameNum,则将nFlushPos 置为0。
一种多媒体播放器的音轨切换系统,包括:
模块创建装置,用于根据码流所包含的音轨的总个数n创建相同个数的先进先出的数据管理模块StreamManager[n-1],所述数据管理模块StreamManager[n-1]用于对音频数据的进行存储管理;
写入装置,用于对于数据解析端所传送的音频数据,根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中,其中,0<=m<n;
读取播放装置,用于在用户播放时,若用户选择的当前需要播放的音频数据的音轨索引值为i,则将记录当前音轨索引值的变量k赋值为i,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=i<n;
清除装置,用于清除每个数据管理模块StreamManager[n-1]中过时的音频数据。
优选的,还包括:
切换装置,用于当用户进行音轨切换时,将当前播放的音轨索引值i修改为需要播放的音轨索引值j,并将记录当前音轨索引值的变量k赋值为j,之后,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=j<n。
优选的,所述模块创建装置创建的每个数据管理模块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。
优选的,所述写入装置根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中时,StreamManager[m]首先根据该音频数据对应数据帧的长度申请一段内存空间,再将音频数据存储至所申请的内存空间,同时,该内存空间的地址会被存储至对应pFrames[nWritePos]的pData中,该音频数据对应数据帧的长度和显示时间戳分别存储在pFrames[nWritePos]的nLength和nPts变量中,然后将nValidFrameNum加1,nWritePos 加1,若nWritePos 等于nMaxFrameNum,则将nWritePos 置为0。
优选的,当所述读取播放装置和切换装置需要从StreamManager[k]中读取对应的音频数据时,具体包括:
从StreamManager[k]的pFrames[nReadPos]中得到对应音频数据的数据帧的内存空间地址、数据长度和数据的显示时间戳, 同时将nValidFrameNum减1, nReadPos 加1, 若nReadPos等于nMaxFrameNum, 则将nReadPos 置为0。
优选的,当所述清除装置需要清除数据管理模块StreamManager[n-1]中过时的音频数据时,对于需要清除的音频数据,对应StreamManager释放为该音频数据申请的内存空间,即清除pFrames[nFlushPos] 的pData对应的内存空间,同时将nFlushPos 加1,若nFlushPos 等于nMaxFrameNum,则将nFlushPos 置为0。
一种播放器,所述播放器采用以上所述的音轨切换系统。
一种智能设备,所述智能设备安装有以上所述的播放器。
本发明的有益效果是:
本发明采用一种多媒体播放器的音轨切换方法、系统及对应播放器和设备,对每一路音轨分别创建数据管理模块,数据管理模块采用先进先出方式,达到了采用较小的内存空间保存多路音频数据的目的;由于各路音频数据都存储在StreamManager中,用户在进行音轨切换时,可以实时地实现将新的音轨数据送入音频解码器解码后进行播放,从而达到无缝切换。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明所述方法的流程示意图;
图2是本发明所述数据管理模块进行数据管理的示意框图。
具体实施方式
参照图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]中过时的音频数据;
(5)当用户进行音轨切换时,将当前播放的音轨索引值i修改为需要播放的音轨索引值j,并将记录当前音轨索引值的变量k赋值为j,之后,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=j<n。
为具体实现以上所述方法,所述创建的每个数据管理模块StreamManager[n-1]包括有以下用于对音频数据对应的数据帧进行存储管理的变量:
用于限定允许存储的最大数据帧个数nMaxFrameNum;
所存储的有效数据帧个数nValidFrameNum;
对应的用于存储数据帧信息的结构体数组 pFrames[nMaxFrameNum-1],所述结构体数组 pFrames[nMaxFrameNum-1]包含有以下用于描述数据帧信息的变量:
数据帧存储的地址指针pData,
数据帧的存储长度 nLength,和
数据帧对应的显示时间戳 nPts;
将要读取的数据帧在pFrames数组中的位置索引nReadPos,且0<=nReadPos <nMaxFrameNum,当从StreamManager中读取完一帧数据后,nReadPos将自动加1,nValidFrameNum将自动减1 ;
将要写入的数据帧在pFrames数组中的位置索引nWritePos,且0<=nWritePos <nMaxFrameNum,当将一帧数据添加到StreamManager中后,nValidFrameNum将自动加1, nWritePos 将自动加1;
将要移除的数据帧在pFrames数组中的位置索引nFlushPos,当从StreamManager中移除一笔数据后,nFlushPos 将自动加1。
其中,所述步骤(2)中,当根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中时,StreamManager[m]首先根据该音频数据对应数据帧的长度申请一段内存空间,再将音频数据存储至所申请的内存空间,同时,该内存空间的地址会被存储至对应pFrames[nWritePos]的pData中,该音频数据对应数据帧的长度和显示时间戳分别存储在pFrames[nWritePos]的nLength和nPts变量中,然后将nValidFrameNum加1,nWritePos 加1,若nWritePos 等于nMaxFrameNum,则将nWritePos 置为0。
其中,所述步骤(3)和步骤(5)中,当需要从StreamManager[k]中读取对应的音频数据时,具体包括:
从StreamManager[k]的pFrames[nReadPos]中得到对应音频数据的数据帧的内存空间地址、数据长度和数据的显示时间戳, 同时将nValidFrameNum减1, nReadPos 加1, 若nReadPos等于nMaxFrameNum, 则将nReadPos 置为0。
其中,所述步骤(4)中,当需要清除数据管理模块StreamManager[n-1]中过时的音频数据时,对于需要清除的音频数据,对应StreamManager释放为该音频数据申请的内存空间,即清除pFrames[nFlushPos] 的pData对应的内存空间,同时将nFlushPos 加1,若nFlushPos 等于nMaxFrameNum,则将nFlushPos 置为0。
本发明在对音频数据处理时,首先根据音轨的个数创建对应数目的先进先出的数据管理模块,对应的数据管理模块存储对应的音频数据。创建的先进先出的数据管理模块动态的为每一路音频数据分配内存空间,可有效的利用存储空间;由于各路音频数据是单独存储,因此,在进行音轨切换时,可以实时地实现将新的音轨数据送入音频解码器解码后进行播放,实现音频的无缝切换,消除延迟。
本发明还提供了一种多媒体播放器的音轨切换系统,包括:
模块创建装置,用于根据码流所包含的音轨的总个数n创建相同个数的先进先出的数据管理模块StreamManager[n-1],所述数据管理模块StreamManager[n-1]用于对音频数据的进行存储管理;
写入装置,用于对于数据解析端所传送的音频数据,根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中,其中,0<=m<n;
读取播放装置,用于在用户播放时,若用户选择的当前需要播放的音频数据的音轨索引值为i,则将记录当前音轨索引值的变量k赋值为i,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=i<n;
清除装置,用于清除每个数据管理模块StreamManager[n-1]中过时的音频数据;以及
切换装置,用于当用户进行音轨切换时,将当前播放的音轨索引值i修改为需要播放的音轨索引值j,并将记录当前音轨索引值的变量k赋值为j,之后,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=j<n。
其中,所述模块创建装置创建的每个数据管理模块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。
所述写入装置根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中时,StreamManager[m]首先根据该音频数据对应数据帧的长度申请一段内存空间,再将音频数据存储至所申请的内存空间,同时,该内存空间的地址会被存储至对应pFrames[nWritePos]的pData中,该音频数据对应数据帧的长度和显示时间戳分别存储在pFrames[nWritePos]的nLength和nPts变量中,然后将nValidFrameNum加1,nWritePos 加1,若nWritePos 等于nMaxFrameNum,则将nWritePos 置为0。
其中,当所述读取播放装置和切换装置需要从StreamManager[k]中读取对应的音频数据时,具体包括:
从StreamManager[k]的pFrames[nReadPos]中得到对应音频数据的数据帧的内存空间地址、数据长度和数据的显示时间戳, 同时将nValidFrameNum减1, nReadPos 加1, 若nReadPos等于nMaxFrameNum, 则将nReadPos 置为0。
其中,当所述清除装置需要清除数据管理模块StreamManager[n-1]中过时的音频数据时,对于需要清除的音频数据,对应StreamManager释放为该音频数据申请的内存空间,即清除pFrames[nFlushPos] 的pData对应的内存空间,同时将nFlushPos 加1,若nFlushPos 等于nMaxFrameNum,则将nFlushPos 置为0。
本发明还提供了一种播放器,所述播放器采用以上所述的音轨切换系统。
本发明还提供了一种智能设备,所述智能设备安装有以上所述的播放器。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
Claims (14)
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。
7.一种多媒体播放器的音轨切换系统,其特征在于,包括:
模块创建装置,用于根据码流所包含的音轨的总个数n创建相同个数的先进先出的数据管理模块StreamManager[n-1],所述数据管理模块StreamManager[n-1]用于对音频数据的进行存储管理;
写入装置,用于对于数据解析端所传送的音频数据,根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中,其中,0<=m<n;
读取播放装置,用于在用户播放时,若用户选择的当前需要播放的音频数据的音轨索引值为i,则将记录当前音轨索引值的变量k赋值为i,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=i<n;
清除装置,用于清除每个数据管理模块StreamManager[n-1]中过时的音频数据。
8.根据权利要求7所述的音轨切换系统,其特征在于,还包括:
切换装置,用于当用户进行音轨切换时,将当前播放的音轨索引值i修改为需要播放的音轨索引值j,并将记录当前音轨索引值的变量k赋值为j,之后,从StreamManager[k]中读取对应的音频数据,并将读取的音频数据传送至音频解码模块进行解码后播放,其中,0<=j<n。
9.根据权利要求8所述的音轨切换系统,其特征在于,所述模块创建装置创建的每个数据管理模块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。
10.根据权利要求9所述的音轨切换系统,其特征在于,所述写入装置根据该音频数据对应的音轨索引值m,将该音频数据写入对应的StreamManager[m]中时,StreamManager[m]首先根据该音频数据对应数据帧的长度申请一段内存空间,再将音频数据存储至所申请的内存空间,同时,该内存空间的地址会被存储至对应pFrames[nWritePos]的pData中,该音频数据对应数据帧的长度和显示时间戳分别存储在pFrames[nWritePos]的nLength和nPts变量中,然后将nValidFrameNum加1,nWritePos 加1,若nWritePos 等于nMaxFrameNum,则将nWritePos 置为0。
11.根据权利要求10所述的音轨切换系统,其特征在于,当所述读取播放装置和切换装置需要从StreamManager[k]中读取对应的音频数据时,具体包括:
从StreamManager[k]的pFrames[nReadPos]中得到对应音频数据的数据帧的内存空间地址、数据长度和数据的显示时间戳, 同时将nValidFrameNum减1, nReadPos 加1, 若nReadPos等于nMaxFrameNum, 则将nReadPos 置为0。
12.根据权利要求10或11所述的音轨切换系统,其特征在于,当所述清除装置需要清除数据管理模块StreamManager[n-1]中过时的音频数据时,对于需要清除的音频数据,对应StreamManager释放为该音频数据申请的内存空间,即清除pFrames[nFlushPos] 的pData对应的内存空间,同时将nFlushPos 加1,若nFlushPos 等于nMaxFrameNum,则将nFlushPos 置为0。
13.一种播放器,其特征在于,所述播放器采用如权利要求12所述的音轨切换系统。
14.一种智能设备,其特征在于,所述智能设备安装有如权利要求13所述的播放器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849953.5A CN104505109B (zh) | 2014-12-29 | 2014-12-29 | 多媒体播放器的音轨切换方法、系统及对应播放器和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849953.5A CN104505109B (zh) | 2014-12-29 | 2014-12-29 | 多媒体播放器的音轨切换方法、系统及对应播放器和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104505109A true CN104505109A (zh) | 2015-04-08 |
CN104505109B CN104505109B (zh) | 2017-06-30 |
Family
ID=52946850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410849953.5A Active CN104505109B (zh) | 2014-12-29 | 2014-12-29 | 多媒体播放器的音轨切换方法、系统及对应播放器和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104505109B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967901A (zh) * | 2015-06-29 | 2015-10-07 | 腾讯科技(北京)有限公司 | 媒体播放中的音轨切换方法和媒体播放设备 |
WO2017054378A1 (zh) * | 2015-09-28 | 2017-04-06 | 青岛海信电器股份有限公司 | 一种音频数据的处理方法、装置和系统 |
CN106921885A (zh) * | 2017-03-02 | 2017-07-04 | 深圳创维数字技术有限公司 | 一种多媒体数据流的切换播放方法及装置 |
CN107342098A (zh) * | 2017-07-20 | 2017-11-10 | 青岛海信电器股份有限公司 | 音频播放方法及装置 |
CN107426600A (zh) * | 2017-06-30 | 2017-12-01 | 北京威动科技有限公司 | 切换音轨和字幕轨的播放方法及装置 |
CN108550377A (zh) * | 2018-03-15 | 2018-09-18 | 北京雷石天地电子技术有限公司 | 一种音轨快速切换的方法及系统 |
CN111339351A (zh) * | 2018-12-19 | 2020-06-26 | 成都鼎桥通信技术有限公司 | 一种Android系统中的音频播放方法 |
CN112423104A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的多路音频的音频混合方法及系统 |
CN115643442A (zh) * | 2022-10-25 | 2023-01-24 | 广州市保伦电子有限公司 | 一种音视频合流录制播放方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414481A (zh) * | 2002-05-23 | 2003-04-30 | 华为技术有限公司 | 一种基于多业务多通道的数据收发处理方法 |
CN1759447A (zh) * | 2003-03-10 | 2006-04-12 | 皇家飞利浦电子股份有限公司 | 能够实现无缝重放的记录载体和设备 |
CN101720037A (zh) * | 2009-12-17 | 2010-06-02 | 青岛海信宽带多媒体技术有限公司 | 一种dvb数据的动态缓存方法 |
CN101963896A (zh) * | 2010-08-20 | 2011-02-02 | 中国科学院计算技术研究所 | 一种具有二次索引结构的存储设备及其操作方法 |
CN103428462A (zh) * | 2013-08-29 | 2013-12-04 | 中安消技术有限公司 | 一种多通道音视频处理方法和装置 |
CN103686196A (zh) * | 2013-12-31 | 2014-03-26 | 北京中科大洋科技发展股份有限公司 | 一种保证视音频正常播出的无缝切换系统及方法 |
-
2014
- 2014-12-29 CN CN201410849953.5A patent/CN104505109B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414481A (zh) * | 2002-05-23 | 2003-04-30 | 华为技术有限公司 | 一种基于多业务多通道的数据收发处理方法 |
CN1759447A (zh) * | 2003-03-10 | 2006-04-12 | 皇家飞利浦电子股份有限公司 | 能够实现无缝重放的记录载体和设备 |
CN101720037A (zh) * | 2009-12-17 | 2010-06-02 | 青岛海信宽带多媒体技术有限公司 | 一种dvb数据的动态缓存方法 |
CN101963896A (zh) * | 2010-08-20 | 2011-02-02 | 中国科学院计算技术研究所 | 一种具有二次索引结构的存储设备及其操作方法 |
CN103428462A (zh) * | 2013-08-29 | 2013-12-04 | 中安消技术有限公司 | 一种多通道音视频处理方法和装置 |
CN103686196A (zh) * | 2013-12-31 | 2014-03-26 | 北京中科大洋科技发展股份有限公司 | 一种保证视音频正常播出的无缝切换系统及方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967901A (zh) * | 2015-06-29 | 2015-10-07 | 腾讯科技(北京)有限公司 | 媒体播放中的音轨切换方法和媒体播放设备 |
WO2017054378A1 (zh) * | 2015-09-28 | 2017-04-06 | 青岛海信电器股份有限公司 | 一种音频数据的处理方法、装置和系统 |
CN106921885A (zh) * | 2017-03-02 | 2017-07-04 | 深圳创维数字技术有限公司 | 一种多媒体数据流的切换播放方法及装置 |
CN106921885B (zh) * | 2017-03-02 | 2020-03-03 | 深圳创维数字技术有限公司 | 一种多媒体数据流的切换播放方法及装置 |
CN107426600B (zh) * | 2017-06-30 | 2019-11-08 | 北京威动科技有限公司 | 切换音轨和字幕轨的播放方法及装置 |
CN107426600A (zh) * | 2017-06-30 | 2017-12-01 | 北京威动科技有限公司 | 切换音轨和字幕轨的播放方法及装置 |
CN107342098A (zh) * | 2017-07-20 | 2017-11-10 | 青岛海信电器股份有限公司 | 音频播放方法及装置 |
CN107342098B (zh) * | 2017-07-20 | 2019-11-26 | 青岛海信电器股份有限公司 | 音频播放方法及装置 |
CN108550377A (zh) * | 2018-03-15 | 2018-09-18 | 北京雷石天地电子技术有限公司 | 一种音轨快速切换的方法及系统 |
CN108550377B (zh) * | 2018-03-15 | 2020-06-19 | 北京雷石天地电子技术有限公司 | 一种音轨快速切换的方法及系统 |
CN111339351A (zh) * | 2018-12-19 | 2020-06-26 | 成都鼎桥通信技术有限公司 | 一种Android系统中的音频播放方法 |
CN111339351B (zh) * | 2018-12-19 | 2023-08-11 | 成都鼎桥通信技术有限公司 | 一种Android系统中的音频播放方法 |
CN112423104A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的多路音频的音频混合方法及系统 |
CN115643442A (zh) * | 2022-10-25 | 2023-01-24 | 广州市保伦电子有限公司 | 一种音视频合流录制播放方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104505109B (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104505109A (zh) | 多媒体播放器的音轨切换方法、系统及对应播放器和设备 | |
CN105393544A (zh) | 媒体流传送中的动态轨道切换 | |
CN104902145B (zh) | 一种直播流视频的播放方法及装置 | |
CN104967901A (zh) | 媒体播放中的音轨切换方法和媒体播放设备 | |
CN105280205B (zh) | 非线性编辑软件音视频同步处理方法及装置 | |
MX2009007623A (es) | Disco optico, unidad de disco optico, metodo de grabacion/reproduccion de disco optico y circuito integrado. | |
CN101540826A (zh) | 一种应用于电视机的多媒体装置及一种电视机 | |
MX2009005226A (es) | Medio de grabacion optica, aparato y metodo para la fabricacion del medio de grabacion optica y aparato y metodo para grabar/reproducir datos del medio de grabacion optica. | |
CN102547435A (zh) | 一种多媒体文件播放处理系统及方法 | |
CN102298508A (zh) | 基于流的固态硬盘预读取的方法及装置 | |
CN108924683A (zh) | 一种日志数据保存方法、装置以及tws耳机 | |
CN101164112B (zh) | 格式转换装置、格式转换方法和动图像解码系统 | |
CN101425310B (zh) | 在音频视频交织记录期间保留索引存储空间的方法 | |
CN1848939B (zh) | 信息管理系统、信息管理装置和信息管理方法 | |
US20140244926A1 (en) | Dedicated Memory Structure for Sector Spreading Interleaving | |
CN107122320B (zh) | 一种基于fpga实现pcm音频播放装置及系统及方法 | |
CN108966000A (zh) | 播放方法及其装置、介质、终端 | |
CN1972416B (zh) | 存储数字音频和视频数据流的设备 | |
CN105263035A (zh) | 一种音视频点播方法及系统 | |
CN102802002B (zh) | 一种手机3d电视视频播放方法 | |
CN101833972B (zh) | 一种多媒体文件播放控制方法及装置 | |
US9671973B2 (en) | Data storage in degraded solid state memory | |
TW200735058A (en) | Method of multimedia source playback for optical storage medium | |
CN100424778C (zh) | 记录多媒体数字数据的方法和设备 | |
CN105516548A (zh) | 一种文件预读方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |