一种车载Android平台的音源管理方法及装置技术领域
本发明涉及车载Android平台,尤其是涉及一种车载Android平台的音源管理方法及装置。
背景技术
在现有Android设备上,有各种播放音源功能的App(Application,应用程序),当打开多个App同时播放音源时,各种声音一起播放,就会什么都听不清,从而成了噪音。其原理图如图4所示, App应用端与音源输出端直接连接,App应用端中的应用程序App1、App2和App3打开后直接音源输出,而不做任何处理。其方法流程如图5所示。先后打开多个播放音源的App,Android设备同时播放所有打开的App。由于不对先后打开的多个播放音源的App做任何处理而造成同时播放,给用户带来了很大的麻烦,不能让用户听他想听的声音,造成失败的用户体验。
因此,急需开发一种如何解决多个App同时播放音源,而不产生噪音、混音的技术。
发明内容
本发明为了解决现有技术Android设备多个应用同时播放音源时,各种声音一起播放,造成用户什么都听不清,听不到他想听的声音的技术问题,提供了一种车载Android平台的音源管理方法及装置。
为解决上述技术问题,本发明采用的技术方案为设计一种车载Android平台的音源管理方法,包括:
接收各个应用的广播;
判断当前打开的应用是否是一般应用,若是一般应用,则进行混音处理,发出播放当前打开的应用的音源、关闭其他应用的音源的播放指令;
根据所述播放指令进行播放。
所述混音处理包括:
判断是否是已开启车机内的当前应用并且当前音源路径不是当前打开的应用的音源;
若是,则将当前音源路径清零,将当前音源定为当前打开的应用的音源;
调用线程里的JNI方法往kernel层发命令;
Kernel层收到命令后向芯片发出播放当前打开的应用的音源、关闭其他音源的播放指令。
所述车载Android平台的音源管理方法还包括:
若不是一般应用,则发出单独播放当前打开的特殊应用的音源、关闭其他应用的音源的播放指令。
本发明还提供了一种车载Android平台的音源管理装置,包括:
App应用端,其发送各个应用的广播;
音源管理模块,其接收各个应用的广播,判断当前打开的应用是否是一般应用,若是一般应用,则进行混音处理,并发出播放当前打开的应用的音源、关闭其他应用的音源的播放指令;
音源输出端,其根据所述播放指令进行播放。
所述混音处理包括:
判断是否是已开启车机内的当前应用并且当前音源路径不是当前打开的应用的音源;
若是,则将当前音源路径清零,将当前音源定为当前打开的应用的音源;
调用线程里的JNI方法往kernel层发命令;
Kernel层收到命令后向芯片发出播放当前打开的应用的音源、关闭其他音源的播放指令。
所述音源管理模块还包括判断若不是一般应用,则发出单独播放当前打开的特殊应用的音源、关闭其他应用的音源的播放指令。
本发明通过判断当前打开的应用是否是一般应用,若是一般应用,则进行混音处理,并播放当前打开的应用的音源,关闭其他应用的音源,从而可避免多个打开的应用同时播放音源造成声音混淆而使用户听不清楚的问题,让用户体验更好。
附图说明
下面结合实施例和附图对本发明进行详细说明,其中:
图1是本发明车载Android平台的音源管理装置的原理图;
图2是本发明车载Android平台的音源管理方法的流程图;
图3是本发明混音处理的流程图;
图4是现有车载Android平台的音源管理装置的原理图;
图5是现有车载Android平台的音源管理方法的流程图。
具体实施方式
请参见图1。本发明车载Android平台的音源管理装置包括:依次连接的App应用端、音源管理模块和音源输出端。
App应用端发送各个应用的广播。
音源管理模块主要用于接收各个应用的广播,判断当前打开的应用是否是一般应用,若是一般应用,则进行混音处理,并发出播放当前打开的应用的音源、关闭其他应用的音源的播放指令。
请一并参见图3。所述混音处理包括:
1、判断是否是已开启车机内的当前应用并且当前音源路径不是当前打开的应用的音源;
2、若是,则将当前音源路径清零,将当前音源定为当前打开的应用的音源;若不是,则直接跳过;
3、调用线程里的JNI方法往kernel层发命令;
4、Kernel层收到命令后向芯片发出播放当前打开的应用的音源、关闭其他音源的播放指令。
音源管理模块还包括判断若不是一般应用,则发出单独播放当前打开的特殊应用的音源、关闭其他应用的音源的播放指令。
音源输出端主要用于根据所述播放指令进行播放。
请参见图2。本发明一种车载Android平台的音源管理方法包括:
步骤一、接收各个应用的广播;
如先后接收多个应用App1、App2和 App3。
步骤二、判断当前打开的应用是否是一般应用,若是一般应用,则进行混音处理,并发出播放当前打开的应用的音源、关闭其他应用的音源的播放指令;
请一并参见图3。所述混音处理包括:
1、判断是否是已开启车机内的当前应用并且当前音源路径不是当前打开的应用的音源;
2、若是,则将当前音源路径清零,将当前音源定为当前打开的应用的音源;
若不是,则直接跳过。
3、调用线程里的JNI方法往kernel层发命令;
4、Kernel层收到命令后向芯片发出播放当前打开的应用的音源、关闭其他音源的播放指令。
在本发明中,定义一般应用为系统应用,定义特殊应用为功能性应用,如蓝牙模块,解码和倒车模块等的输出即为功能性应用,从而可对车机中单个独立的模块进行特殊处理。
若不是一般应用,则发出单独播放当前打开的特殊应用的音源、关闭其他应用的音源的播放指令。
显然,本发明仅仅将应用分为一般应用和特殊应用,则此时,不需要判断当前打开的应用是否是特殊应用,只要不是一般应用,则直接认为是特殊应用,单独播放当前打开的特殊应用的音源、关闭其他应用的音源。
当然,也可以增加判断是否是特殊应用的步骤,只有判断是特殊应用后才执行相应的动作。
步骤三、根据所述播放指令进行播放。
如先后打开播放音源的App1、App2和 App3,由于App3最后打开,则仅播放App3的音源,而停止App1和App2的音源的播放。而先后打开播放音源的App3、App2和 App1时,App1最后打开,则仅播放App1的音源,而停止App2和App3的音源的播放。
不管是一般应用还是特殊应用,本发明的核心思想就是播放当前打开的应用的音源而关闭其他应用的音源,只是在处理时采用的技术不同。
本发明通过判断当前打开的应用是否是一般应用,若是一般应用,则进行混音处理,并播放当前打开的应用的音源,关闭其他应用的音源,从而可避免多个打开的应用同时播放音源造成声音混淆而使用户听不清楚的问题,让用户体验更好。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。