一种音频播放方法、装置及终端制造方法及图纸

技术编号:7953831 阅读:130 留言:0更新日期:2012-11-08 23:09
本发明专利技术适用于音频处理领域,提供一种音频播放方法、装置,所述方法包括:创建包含每一音频应用程序的声音文件、音轨数据、音轨数据进程号的对应关系的索引表;根据当前激活状态音频应用程序的声音文件对应的进程号查询所述索引表,筛选出所述进程号对应的音轨数据;在混音线程中将所述筛选出的音轨数据送至混音器中混音输出。本发明专利技术根据当前激活状态音频应用程序的声音文件对应的进程号查询所述索引表,查找到对应的音轨数据,将所述音轨数据在混音器中混音输出,从而实现了仅播放最后打开音频应用的声音文件而屏蔽其他应用的声音,达到了声音分离的目的。

【技术实现步骤摘要】

本专利技术属于音频处理领域,尤其涉及一种音频播放方法、装置及终端
技术介绍
现有的音频播放终端,包括手机、音乐播放器、掌上电脑、甚至智能电视、个人电脑等,若仅运行一个音频应用程序时,可以正常流畅地播放该应用中的声音文件,但是当多个同类型的音频应用(比如‘酷我音乐盒’与‘善听说书’)一起运行的时候,虽然也能正常流畅的播放,但是所述各个应用中的声音会同时输出,互相之间可能产生干扰而给用户带来 比较混乱的感觉。不仅如此,这些音频播放终端还可能会存在一些后台运行的声音文件,比如消息通知声音、闹铃声音等等。目前还未出现一种控制方案能够对所述对这些音频应用程序和系统后台输出的声音进行分离,输出单个声音。
技术实现思路
鉴于上述问题,本专利技术的目的在于提供一种音频播放方法,旨在解决现有音频播放终端中多个音频应用程序运行时,所有的声音文件同时播放输出,而导致声音相互干扰、输出混乱的技术问题。本专利技术是这样实现的,一种音频播放方法,包括下述步骤创建包含每一音频应用程序的声音文件、音轨数据、音轨数据进程号的对应关系的索引表;根据当前激活状态声音文件对应的进程号查询所述索引表,筛选出进程号对应的音轨数据;在混音线程中将所述筛选出的音轨数据送至混音器中混音输出。本专利技术的另一目的在于提供一种音频播放装置,包括索引表创建单元,用于创建包含每一音频应用程序的声音文件、音轨数据、进程号进程号的对已关系的索引表;数据筛选单元,用于根据当前激活状态声音文件对应的进程号查询所述索引表,筛选出所述进程号对应的音轨数据;混音输出单元,用于在混音线程中将所述筛选出的音轨数据送至混音器中混音输出。本专利技术的再一目的在于提供一种音频播放终端,该终端包括所述的音频播放装置。在本专利技术实施例中,由于在创建每个声音文件的音轨数据时,有唯一的进程号与之对应,当有多个声音需要输出的时候,获取到当前激活状态声音文件,即最后激活的音频应用程序的声音文件,根据激活状态声音文件的进程号查找到对应的音轨数据,将所述音轨数据在混音器中混音输出即可,从而实现了仅播放最后打开音频程序的声音文件而屏蔽其他应用的声音,达到了声音分离的目的。附图说明图I是本专利技术第一实施例提供的一种音频播放方法的流程图;图2是本专利技术第二实施例提供的一种音频播放方法的流程图;图3是本专利技术第三实施例提供的一种音频播放装置的结构方框图;图4是本专利技术第四实施例提供的一种音频播放装置的结构方框图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。实施例一: 图I示出了本专利技术第一实施例提供的一种音频播放方法的流程,为了便于说明仅不出了与本专利技术实施例相关的部分。本实施例提供的音频播放方法包括步骤S101、创建包含每一音频应用程序的声音文件、音轨数据、音轨数据进程号对应关系的索引表。所述音频应用程序为具有音频输出功能的应用程序,例如“qq音乐”、“善听说书”等等,通常在为音频应用程序中的声音文件创建音轨数据时都会为其分配一个进程号,每个音轨数据与一个音轨数据进程号唯一对应,在本步骤中,需要保存每一音频应用程序的音轨数据进程号、音轨数据和声音文件的映射关系,使得在需要输出声音时,可以通过音轨数据进程号找到需要输出的音轨数据。本实施例中所述的音轨数据存储于数据库中,可以来自于同一声音文件,也可以来自于不同的声音文件,即一个声音文件可以对应多个音轨数据。步骤S102、根据当前激活状态的音频应用程序的声音文件对应的进程号查询所述索引表,筛选出所述进程号对应的音轨数据。音频应用程序有先后打开之分,用户最后激活的音频应用程序就是当前激活音频应用程序。具体的当用户打开了多个音频应用程序时,所述最后打开的音频应用程序为最后激活的音频应用程序。在输出声音时,根据为该最后激活的音频应用程序的声音文件对应的音轨数据分配的进程号查找所述索引表,从而在数据库中筛选出与所述进程号对应的音轨数据。步骤S103、在混音线程中将所述筛选出的音轨数据送至混音器中混音输出。本步骤中筛选出声音文件对应的音轨数据后,仅将该筛选出的音轨数据输出至混音器中进行混音输出,其它音频应用程序的声音文件对应的音轨数据则继续存储在数据库中,待该音轨数据的应用程序被激活时才会被筛选并混音输出。所述音轨数据由声音文件解析得到,包含了声音数据、音色信息等标准格式数据,在混音器中,将这些数据通过软件或是硬件的方式还原出来。由于所述筛选出的音轨数据是当前激活状态音频应用程序对应的音轨数据,因此此时经过混音输出的声音是最后激活的音频应用输出的声音,而其他应用的声音处于被屏蔽状态。在本实施例中,通过创建包含声音文件、音轨数据、音轨数据进程号对应关系的索引表,根据当前激活状态的音频应用程序的声音文件对应的进程号,查找所述索引表,以在数据库中筛选输出对应当前激活状态的音频应用程序的音轨数据进行混音输出,其它音频应用程序的声音将被屏蔽,进而实现了仅输出最近开启的音频应用程序的声音而屏蔽其他应用的声音,达到了分离多个声音文件的目的。实施例二 :图2示出了本专利技术第二实施例提供的一种音频播放方法的流程,为了便于说明仅不出了与本专利技术实施例相关的部分。 本实施例在实施例一的基础上对每个步骤进一步细化,作出优选实施步骤,具体如下步骤S201、解析已开启音频应用程序中所包含的声音文件,在音频管理器中创建声音文件对应的音轨数据,并为每个音轨数据分配一个进程号。在开启音频应用程序后,对该音频应用程序中的声音文件进行解析,在解析的过程中记录每个声音文件以及在音频管理器中创建该声音文件对应的音轨数据。譬如,在Android系统中,音频管理器(AudioFlinger)用于负责管理输入输出的音频流,在创建音轨(AudioTrack)数据时,都会为音轨数据分配一个进程号PID,具体如下sp〈 I Au d i 0 Tr ac k> Au d i oF I i n ger : : c r e a t e Tr ac k (p i d_t p i d, intstreamType, uint32_t sampleRate,int format, int channeICount,intframeCount,uint32_tflags,const sp<IMemory>& sharedBuffer,int output,status_t^status)然后根据output值进行审查,找出用于处理该音轨数据的线程,在Android系统中,通常该线程为是MixerThread线程,所述MixerThread线程是在AudioFlinger下创建的,主要负责数据的混音处理,AudioFlinger也会检查是否有管理该AudioTrack数据的客户端client,当存在客户端时再调用PlaybackThread线程中的createTrack_I,最终将该音轨数据加入到音频管理数组mTracks中,以便同一管理所有音轨数据。步骤S202、创建包含所述声音文件、音轨数据、音轨数据进程号的对应关系的索引表。本实施例本文档来自技高网...

【技术保护点】
一种音频播放方法,其特征在于,所述方法包括:创建包含每一音频应用程序的声音文件、音轨数据、音轨数据进程号对应关系的索引表;根据当前激活状态音频应用程序的声音文件对应的进程号查询所述索引表,筛选出所述进程号对应的音轨数据;在混音线程中将所述筛选出的音轨数据送至混音器中混音输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴琼
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1