CN106528040A - 改进安卓设备音质的方法及装置 - Google Patents

改进安卓设备音质的方法及装置 Download PDF

Info

Publication number
CN106528040A
CN106528040A CN201610948915.4A CN201610948915A CN106528040A CN 106528040 A CN106528040 A CN 106528040A CN 201610948915 A CN201610948915 A CN 201610948915A CN 106528040 A CN106528040 A CN 106528040A
Authority
CN
China
Prior art keywords
sample rate
resampling
audio frequency
pcm data
data block
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.)
Pending
Application number
CN201610948915.4A
Other languages
English (en)
Inventor
郑远
林鎏娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Star Net eVideo Information Systems Co Ltd
Original Assignee
Fujian Star Net eVideo Information Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Star Net eVideo Information Systems Co Ltd filed Critical Fujian Star Net eVideo Information Systems Co Ltd
Priority to CN201610948915.4A priority Critical patent/CN106528040A/zh
Publication of CN106528040A publication Critical patent/CN106528040A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明属于安卓音频播放技术领域,具体涉及一种改进安卓设备音质的方法及装置。本发明的改进安卓设备音质的方法包括以下步骤:获取安卓设备硬件抽象层的放音采样率SR0;根据所述放音采样率SR0创建一个音频流实例;判断当前播放音频的采样率SR1与所述放音采样率SR0是否一致;若采样率不一致,则对播放音频进行高质量重采样播放处理;若采样率一致,则对播放音频进行播放处理。通过本发明的方法可以实现安卓系统上自定义的高质量重采样播放处理,从而避免采用安卓系统的默认的重采样方法导致的音质变差问题。

Description

改进安卓设备音质的方法及装置
技术领域
本发明属于安卓音频播放技术领域,具体涉及一种改进安卓设备音质的方法及装置。
背景技术
随着智能设备的不断普及,安卓系统市场占有率不断扩大,成为第一大智能设备操作系统,被大量的多媒体设备采用。但安卓设备的音质在很长一段时间内都是外界诟病的焦点,由于受制于安卓音频框架代码的实现,安卓设备的硬件抽象层的采样率是固定的,通常是44.1KHz,而如今常见音频的采样率一般为44.1KHz(CD时代的典型采样率)或48KHz(DVD时代以后的典型采样率)、以及96KHz或192KHz等更高品质的采样率。安卓音频框架中的AudioFlinger在接收音频的时候,会判断其采样率和硬件抽象层的采样率是否一致,如果一致则可以直接送到硬件抽象层去输出播放,如果不一致,则会进行音频重采样处理,将采样率转换为硬件抽象层的采样率后再输出播放。由于安卓系统中默认提供的重采样算法并不能做到高质量的重采样,就会导致所有经过安卓音频框架重采样的音频的音质失真变差。
申请号为201410856812.6的中国专利,公开了一种基于安卓的高采样率直通音频输出方法,该方法不采用安卓系统现有的重采样混音的音频处理架构,通过将高采样率音频流直接输入给底层音频设备进行播放的方式,从而避免了安卓系统进行重采样导致的音质失真问题。但由于安卓系统音频设备同一时间内只能支持一个采样率的音频进行播放,所以该方案只能适用于播放相同采样率音频流的场景,而在多个音频流的采样率不相同的使用场景中,该方案会导致其他采样率的音频无法播放。
发明内容
本发明的目的之一在于克服以上缺点,提供一种既不改变安卓系统重采样混音的音频处理架构,同时又能避免安卓系统进行重采样导致的音质失真,提高音频播放音质的方法。
为了解决上述技术问题,本发明提供了一种改进安卓设备音质的方法,包括以下步骤:
获取安卓设备硬件抽象层的放音采样率SR0;
根据所述放音采样率SR0创建一个音频流实例;
判断当前播放音频的采样率SR1与所述放音采样率SR0是否一致;
若采样率不一致,则对播放音频进行高质量重采样播放处理;
若采样率一致,则对播放音频进行播放处理。
本发明的技术方案在保持安卓系统放音采样率SR0不变,避免安卓系统进行自动重采样的基础上,引入外部高质量重采样处理,从而实现可由音频应用根据高品质音频输出的需求选择是否进行高质量重采样,提高输出音质的目的。
进一步地,所述对播放音频进行高质量重采样播放处理,包括以下步骤:
步骤1、根据所述放音采样率SR0和所述当前播放音频的采样率SR1创建重采样实例;
步骤2、调用重采样函数将当前播放音频的PCM数据块由采样率SR1转换为采样率SR0,得到重采样后的PCM数据块;
步骤3、将重采样后的PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
按照PCM数据块顺序重复上述步骤2-3直至所有PCM数据块处理完成。
进一步地,所述重采样函数调用方式可以为安卓服务、第三方库或重采样硬件模块。
进一步地,所述第三方库为libsoxr函数库。
本发明的技术方案引入的外部重采样处理函数,提供给安卓应用的调用方式灵活,可满足不同应用场景的需求;同时第三方重采样函数库可根据需要进行替换,保证最优的音质。
进一步地,所述“若采样率一致,对播放音频进行播放处理”,包括以下步骤:
将PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成。
相应地,本发明还提供了一种改进安卓设备音质的装置,包括:
第一处理模块,用于获取安卓设备硬件抽象层的放音采样率SR0;
第二处理模块,用于根据所述放音采样率SR0创建一个音频流实例;
第三处理模块,用于判断当前播放音频的采样率SR1与所述放音采样率SR0是否一致;
第四处理模块,用于若采样率不一致,则对播放音频进行高质量重采样播放处理;
第五处理模块,用于若采样率一致,则对播放音频进行播放处理。
进一步地,所述第四处理模块,包括:
第一处理单元,用于执行步骤1、根据所述放音采样率SR0和所述当前播放音频的采样率SR1创建重采样实例;
第二处理单元,用于执行步骤2、调用重采样函数将当前播放音频的PCM数据块由采样率SR1转换为采样率SR0,得到重采样后的PCM数据块;
第三处理单元,用于执行步骤3、将重采样后的PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
第四处理单元,用于按照PCM数据块顺序重复上述步骤2-3直至所有PCM数据块处理完成。
进一步地,所述重采样函数调用方式可以为安卓服务、第三方库或重采样硬件模块。
进一步地,所述第三方库为libsoxr函数库。
进一步地,所述第五处理模块,包括:
第一处理单元,用于将PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
第二处理单元,用于按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成。
综上所述,本发明技术方案的有益效果有:
1.在保持安卓系统放音采样率SR0不变,避免安卓系统进行自动重采样的基础上,引入外部高质量重采样处理,从而实现可由音频应用根据高品质音频输出的需求选择是否进行高质量重采样,提高输出音质的目的。
2.引入的外部重采样处理函数,提供给安卓应用的调用方式灵活,可满足不同应用场景的需求;同时第三方重采样函数库可根据需要进行替换,保证最优的音质。
附图说明
图1是本发明的一种改进安卓设备音质的方法步骤流程图。
图2是本发明的一种对播放音频进行高质量重采样播放处理步骤流程图。
图3是本发明的一种对播放音频进行播放处理步骤流程图。
图4是本发明的一种改进安卓设备音质的装置结构图。
图5是本发明的一种第四处理模块结构图。
图6是本发明的一种第五处理模块结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
安卓是一种基于Linux的自由及开放源代码的操作系统,在安卓的音频系统框架中,由底层向上分为硬件层,驱动层和用户层,整个安卓音频的处理主要是在用户层实现。用户层从底层向上又可以细分为硬件抽象层(HAL,Hardware Abstraction Layer)、运行时库层、应用框架层和应用层,其中硬件抽象层用于隔离Linux内核和安卓系统,使得安卓系统不用去直接调用底层的Linux音频驱动,不论底层如何变化,上层的实现都可以保持兼容;运行时库层,主要提供了安卓系统各种音频相关功能的核心类库Libraries,通常为C++代码库;应用框架层,提供开发安卓应用程序所需的一系列API,为上层应用提供Java接口支持,应用框架层并不会真正去实现具体的功能,而是通过调用核心库完成功能,可以理解为是核心库与应用之间的一个中介层;应用层,是指不同厂商为实现某个特定功能编写的安卓应用,例如音频播放器等。
在安卓音频播放应用场景中,通常会有多个音轨同时需要进行播放,例如,播放音乐的时候,接收到短信通知或电话响铃,安卓音频子系统内部的音频处理机制为:会为每一个音频流创建一个音频流实例,每个音频流实例各自的属性可能都不相同,例如采样率,声道数,音频格式,编码方式等等。其中,最常见的音频流编码方法是PCM(Pulse CodeModulation,脉冲编码调制),它只对语音信号进行采样和量化处理,优点是编码方法简单,延迟时间短,音质高,重构的语音信号与原始语音信号几乎没有差别。同时,每个音频流实例在创建时注册到AudioFlinger中,AudioFlinger是安卓中的音频服务,在安卓系统启动时加载,它负责管理放音及录音,主音量控制,每个音频流的属性设置,设备控制,音效控制等等,同时AudioFlinger将所有的音频流进行混音处理(Mixer),然后输送到音频硬件抽象层中进行播放。
在音频的各项属性中,采样率是重要的参数之一,定义了每秒从连续信号中提取并组成离散信号的采样个数,通常单位为赫兹(Hz),采样频率的倒数是采样周期,表示采样之间的时间间隔,通俗的讲采样频率是指计算机每秒钟采集多少个信号样本。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的样本数据就越多,对声音信号波形的表示也越精确,目前常见的音频采样率有44.1KHz、48KHz、96KHz、192KHz等等。由于安卓系统框架的限制,底层的音频硬件只能支持按照固定放音采样率进行音频播放,所以当音频流的采样率与放音采样率不一致时,AudioFlinger还会对音频流进行重采样操作,转换为统一的采样率,然后再进行混音处理,输送到音频硬件抽象层中进行播放。但是由于安卓系统为了普适性,其采用较为简单的音频重采样算法,例如基于线性插值法(linear)、三次样条插值法(cubic splines)等,从而导致所有经过安卓音频框架自动重采样的音频的音质失真变差。
如图1,是本发明的一种改进安卓设备音质的方法步骤流程图,包括以下步骤:
步骤1、获取安卓设备硬件抽象层的放音采样率SR0;
应用层通过调用AudioManager获取放音采样率SR0,此采样率即为安卓设备硬件抽象层的采样率。AudioManager是安卓系统提供的音频管理,为上层应用提供了音量和铃声模式控制的接口,同时也可以获取设备硬件抽象层的放音采样率。通常安卓系统的硬件抽象层的放音采样率SR0为44.1KHz或48KHz。
步骤2、根据所述放音采样率SR0创建一个音频流实例;
应用层按照硬件抽象层的放音采样率SR0创建一个新的音频流实例,这里的音频流实例可以是安卓音频系统提供的用于播放音频的AudioTrack实例,每一个音频流对应一个AudioTrack实例,由AudioTrack实例控制音频的开始播放(即向AudioFlinger写入音频流数据),暂停等操作。
另外在嵌入式系统中,为开发更加高效的安卓音频应用,本步骤创建的音频流实例也可以是OpenSL ES(Open Sound Library for Embedded Systems,嵌入式音频加速标准)实例,由OpenSL ES实例往AudioFlinger写入音频PCM数据。
由于本步骤创建的音频实例的采样率与硬件抽象层的放音采样率保持一致,所以保证了后续将该音频流写入AudioFlinger后,AudioFlinger不会对该音频流进行重新采样处理。
步骤3、判断当前播放音频的采样率SR1与放音采样率SR0是否一致;
应用层判断当前播放的音频PCM的采样率SR1和硬件抽象层的采样率SR0是否一致,根据判断结果进行后续不同的处理。
步骤4、若采样率不一致,则对播放音频进行高质量重采样播放处理;
当前播放音频的采样率SR1与放音采样率SR0不一致的时候,如果按照安卓系统的默认处理方式,将采样率为SR1的音频流写入AudioFlinger后,AudioFlinger会对该音频流进行重新采样并播放。而本发明的技术方案通过先对音频流进行SR1到SR0的高质量重采样,再按照SR0采样率写入AudioFlinger播放处理,从而避免了AudioFlinger重采样导致的音质下降。如图2,是本发明的一种对播放音频进行高质量重采样播放处理步骤流程图,包括以下步骤:
步骤401、根据所述放音采样率SR0和所述当前播放音频的采样率SR1创建重采样实例;由该重采样实例负责对当前音频流进行高质量重采样操作。
重采样实例的创建过程为:先加载重采样库、或重采样服务程序、或重采样的硬件模块,然后对加载的内容进行初始化,初始化的参数为放音采样率SR0和当前播放音频的采样率SR1。
步骤402、调用重采样函数将当前播放音频的PCM数据块由采样率SR1转换为采样率SR0,得到重采样后的PCM数据块;
在安卓音频系统中,音频数据有两种加载方式:一种是静态加载模式,把完整的音频数据一次性写入到AudioFlinger的内部缓冲区中,适用于播放内存占用小、延时要求较高的音频数据,例如电话铃声,短信提醒音等;另一种方式是,应用程序持续地将音频数据块写到AudioFlinger内部缓冲区中进行播放,这种模式适用于播放大音频数据,例如网络在线音乐等,这种方式适用于大多数的音频播放场景,本发明实施例均以该方式进行说明。
在当前播放音频的每个PCM数据块写入AudioFlinger内部缓冲区之前,将该PCM数据块(data1)及其大小(len1)作为参数,传入创建好的重采样实例中,由该实例调用高质量重采样函数,得到重采样后采样率为SR0的新数据(data0)以及新数据的大小(len0)。
本步骤中,引入外部的高质量重采样函数,将当前采样率为SR1的播放音频的数据转换为采样率为SR0的新数据,从而实现高质量的重采样。所述高质量重采样函数可以是开源的libsoxr函数,还可以是高质量重采样库libfsrc。高质量重采样库libsoxr是基于带限插值(bandlimited interpolation)实现,可以达到信号完整重建的目的,重采样后的质量与原始质量相同。由于专门使用外部的高质量重采样函数,从而避免安卓系统自动重采样使得音质失真变差。
在一具体的实施例中,本发明的高质量重采样函数可以是以第三方程序库的形式与应用程序一起打包安装,只有本应用程序可以对重采样函数进行内部调用。另外,高质量重采样函数还可以安卓系统服务的方式提供,由重采样实例调用该服务提供的接口进行PCM数据块的采样率转换,这种方式下高质量重采样服务可以为不同的应用程序提供统一的服务调用接口。优选地,还可以将高质量重采样函数库以硬件模块方式嵌入安卓设备,并在系统中提供相应的驱动接口提供给应用层使用,从而减少对安卓设备CPU等资源的过多占用。
同时,本发明技术方案中的高质量重采样函数库,可以根据需求选择合适的第三方库进行替换,例如,目前选择开源的libsoxr函数库进行处理,可以得到较好的重采样音质效果,后续若有更好音质的重采样算法库,可以将libsoxr函数库进行替换。
步骤403、将重采样后的采样率为SR0的PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
安卓音频系统中的AudioFlinger负责读取已经写入播放缓冲区的PCM数据块,将多个音频流进行混音后,送给硬件抽象层进行播放。
步骤404、按照音频流PCM数据块顺序重复上述步骤402-403直至所有PCM数据块处理完成,该音频播放过程结束。
步骤5、若当前播放音频的采样率SR1与所述放音采样率SR0一致,则按照现有安卓音频系统框架处理流程进行播放处理。如图3,是本发明的一种对播放音频进行播放处理步骤流程图,包括以下步骤:
步骤501、将PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger负责读取已经写入播放缓冲区的PCM数据块,将多个音频流进行混音后,送给硬件抽象层进行播放;
步骤502、按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成,该音频播放过程结束。
本发明的技术方案在保持安卓系统放音采样率SR0不变,避免安卓系统进行自动重采样的基础上,引入外部高质量重采样处理,从而实现可由音频应用根据高品质音频输出的需求选择是否进行高质量重采样,提高输出音质的目的。
例如,在一具体的实施例中,安卓设备的硬件抽象层的放音采样率固定为44.1KHz,用户在收听采样率为96KHz的高品质的音乐时,有电话号码呼叫进来产生响铃(响铃声音为系统自带的44.1KHz采样率的音乐)的场景中,本发明的改进安卓设备音质方法的处理流程为:
步骤1、应用层通过调用AudioManager获取硬件抽象层的放音采样率SR0,得到的SR0为44.1KHz。
步骤2、针对用户收听的采样率为96KHz的高品质音乐创建一个采样率为44.1KHz的AudioTrack实例1;针对用户电话响铃声创建另一个采样率为44.1KHz的AudioTrack实例2。
步骤3、分别判断AudioTrack实例1和AudioTrack实例2中,当前播放音频的采样率与放音采样率是否一致;
步骤4、对于AudioTrack实例1,当前播放音频的采样率96KHz与放音采样率44.1KHz不一致,则对播放音频进行高质量重采样播放处理,具体为:
步骤401、根据放音采样率44.1KHz和当前播放音频的采样率96KHz创建重采样实例;
步骤402、调用libsoxr高质量重采样函数将当前播放音频的PCM数据块由采样率96KHz转换为采样率44.1KHz,得到重采样后的PCM数据块;
步骤403、将重采样后的采样率为44.1KHz的PCM数据块通过AudioTrack实例1写入AudioFlinger;
步骤404、按照音频流PCM数据块顺序重复上述步骤402-403直至所有PCM数据块处理完成。
步骤5、对于AudioTrack实例2,当前播放音频的采样率44.1KHz与放音采样率44.1KHz一致,则按照现有安卓音频系统框架处理流程进行播放处理,包括以下步骤:
步骤501、将PCM数据块通过AudioTrack实例2写入AudioFlinger;
步骤502、按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成。
步骤6、AudioFlinger将AudioTrack实例1和AudioTrack实例2写入缓存中的PCM数据块进行混音处理,送给硬件抽象层进行播放,直至所有的PCM数据块处理完成,音频播放结束。
如图4,是本发明的一种改进安卓设备音质的装置结构图,包括:
第一处理模块,用于获取安卓设备硬件抽象层的放音采样率SR0;应用层通过调用AudioManager获取放音采样率SR0,此采样率即为安卓设备硬件抽象层的采样率,通常为44.1KHz或48KHz。
第二处理模块,用于根据所述放音采样率SR0创建一个音频流实例;为保证后续音频流不被安卓系统进行重采样,必须按照硬件抽象层的放音采样率SR0创建音频流实例。这里的音频流实例可以是AudioTrack实例或OpenSL实例。
第三处理模块,用于判断当前播放音频的采样率SR1与所述放音采样率SR0是否一致;
第四处理模块,用于若采样率不一致,则对播放音频进行高质量重采样播放处理;通过先对音频流进行SR1到SR0的高质量重采样,再按照SR0采样率写入AudioFlinger播放处理,从而避免了AudioFlinger重采样导致的音质下降。
第五处理模块,用于若采样率一致,则对播放音频进行播放处理。对于不需要高品质输出的音频,例如闹钟声音,短信提醒音等,可以按照安卓系统现有方式处理。
如图5,是本发明的一种第四处理模块结构图,包括:
第一处理单元,用于执行步骤1、根据所述放音采样率SR0和所述当前播放音频的采样率SR1创建重采样实例;
第二处理单元,用于执行步骤2、调用重采样函数将当前播放音频的PCM数据块由采样率SR1转换为采样率SR0,得到重采样后的PCM数据块;其中,所述重采样函数调用方式可以为安卓服务、第三方库或重采样硬件模块;优选地,本发明采用的第三方库为libsoxr函数库。
第三处理单元,用于执行步骤3、将重采样后的PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
第四处理单元,用于按照PCM数据块顺序重复上述步骤2-3直至所有PCM数据块处理完成。
如图6,是本发明的一种第五处理模块结构图,包括:
第一处理单元,用于将PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
第二处理单元,用于按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成。
上述具体实施方式只是对本发明的技术方案进行详细解释,本发明并不只仅仅局限于上述实施例,凡是依据本发明原理的任何改进或替换,均应在本发明的保护范围之内。

Claims (10)

1.一种改进安卓设备音质的方法,其特征在于,包括以下步骤:
获取安卓设备硬件抽象层的放音采样率SR0;
根据所述放音采样率SR0创建一个音频流实例;
判断当前播放音频的采样率SR1与所述放音采样率SR0是否一致;
若采样率不一致,则对播放音频进行高质量重采样播放处理;
若采样率一致,则对播放音频进行播放处理。
2.如权利要求1所述的改进安卓设备音质的方法,其特征在于,所述对播放音频进行高质量重采样播放处理,包括以下步骤:
步骤1、根据所述放音采样率SR0和所述当前播放音频的采样率SR1创建重采样实例;
步骤2、调用重采样函数将当前播放音频的PCM数据块由采样率SR1转换为采样率SR0,得到重采样后的PCM数据块;
步骤3、将重采样后的PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
按照PCM数据块顺序重复上述步骤2-3直至所有PCM数据块处理完成。
3.如权利要求2所述的改进安卓设备音质的方法,其特征在于,所述重采样函数调用方式可以为安卓服务、第三方库或重采样硬件模块。
4.如权利要求3所述的改进安卓设备音质的方法,其特征在于,所述第三方库为libsoxr函数库。
5.如权利要求1所述的改进安卓设备音质的方法,其特征在于,所述“若采样率一致,对播放音频进行播放处理”,包括以下步骤:
将PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成。
6.一种改进安卓设备音质的装置,其特征在于,包括:
第一处理模块,用于获取安卓设备硬件抽象层的放音采样率SR0;
第二处理模块,用于根据所述放音采样率SR0创建一个音频流实例;
第三处理模块,用于判断当前播放音频的采样率SR1与所述放音采样率SR0是否一致;
第四处理模块,用于若采样率不一致,则对播放音频进行高质量重采样播放处理;
第五处理模块,用于若采样率一致,则对播放音频进行播放处理。
7.如权利要求6所述的改进安卓设备音质的装置,其特征在于,所述第四处理模块,包括:
第一处理单元,用于执行步骤1、根据所述放音采样率SR0和所述当前播放音频的采样率SR1创建重采样实例;
第二处理单元,用于执行步骤2、调用重采样函数将当前播放音频的PCM数据块由采样率SR1转换为采样率SR0,得到重采样后的PCM数据块;
第三处理单元,用于执行步骤3、将重采样后的PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
第四处理单元,用于按照PCM数据块顺序重复上述步骤2-3直至所有PCM数据块处理完成。
8.如权利要求7所述的改进安卓设备音质的装置,其特征在于,所述重采样函数调用方式可以为安卓服务、第三方库或重采样硬件模块。
9.如权利要求8所述的改进安卓设备音质的装置,其特征在于,所述第三方库为libsoxr函数库。
10.如权利要求6所述的改进安卓设备音质的装置,其特征在于,所述第五处理模块,包括:
第一处理单元,用于将PCM数据块通过所述音频流实例写入AudioFlinger,由所述AudioFlinger送给硬件抽象层进行音频播放;
第二处理单元,用于按照PCM数据块顺序重复上述步骤直至所有PCM数据块处理完成。
CN201610948915.4A 2016-11-02 2016-11-02 改进安卓设备音质的方法及装置 Pending CN106528040A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610948915.4A CN106528040A (zh) 2016-11-02 2016-11-02 改进安卓设备音质的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610948915.4A CN106528040A (zh) 2016-11-02 2016-11-02 改进安卓设备音质的方法及装置

Publications (1)

Publication Number Publication Date
CN106528040A true CN106528040A (zh) 2017-03-22

Family

ID=58292866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610948915.4A Pending CN106528040A (zh) 2016-11-02 2016-11-02 改进安卓设备音质的方法及装置

Country Status (1)

Country Link
CN (1) CN106528040A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106921908A (zh) * 2017-03-24 2017-07-04 成都市极米科技有限公司 一种蓝牙音箱实现方法和系统
CN109243472A (zh) * 2018-09-28 2019-01-18 广州小鹏汽车科技有限公司 一种音频处理方法及音频处理系统
CN109448676A (zh) * 2018-11-09 2019-03-08 广州酷狗计算机科技有限公司 音频处理方法、装置及存储介质
CN109524005A (zh) * 2019-01-24 2019-03-26 深圳市同行者科技有限公司 一种基于安卓系统的车载语音回音消除方法及系统
CN111601157A (zh) * 2020-05-11 2020-08-28 海信视像科技股份有限公司 一种音频输出方法及显示设备
CN111782177A (zh) * 2020-07-10 2020-10-16 安徽芯智科技有限公司 一种基于rtos的音频流输出方法
CN112738576A (zh) * 2019-10-28 2021-04-30 海信视像科技股份有限公司 一种显示设备及声音低延迟处理方法
CN112803907A (zh) * 2021-03-17 2021-05-14 统信软件技术有限公司 一种提供音频播放服务的系统和方法
CN112802440A (zh) * 2019-10-28 2021-05-14 海信视像科技股份有限公司 一种显示设备及声音低延迟处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079296A (zh) * 2006-05-22 2007-11-28 上海奇码数字信息有限公司 音频解码器和音频解码方法
CN202102715U (zh) * 2011-05-31 2012-01-04 杭州卡威电子有限公司 音频媒体多载体实时播控系统
CN102610267A (zh) * 2012-03-16 2012-07-25 广东步步高电子工业有限公司 一种改善播放系统音频播放质量的方法
CN104508740A (zh) * 2012-06-12 2015-04-08 全盛音响有限公司 双重兼容无损音频带宽扩展
CN105554284A (zh) * 2015-12-22 2016-05-04 福建星网智慧科技股份有限公司 一种改善Android手机通话音质的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079296A (zh) * 2006-05-22 2007-11-28 上海奇码数字信息有限公司 音频解码器和音频解码方法
CN202102715U (zh) * 2011-05-31 2012-01-04 杭州卡威电子有限公司 音频媒体多载体实时播控系统
CN102610267A (zh) * 2012-03-16 2012-07-25 广东步步高电子工业有限公司 一种改善播放系统音频播放质量的方法
CN104508740A (zh) * 2012-06-12 2015-04-08 全盛音响有限公司 双重兼容无损音频带宽扩展
CN105554284A (zh) * 2015-12-22 2016-05-04 福建星网智慧科技股份有限公司 一种改善Android手机通话音质的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIBSOXR: "Package:libsorx-dev(0.1.1-1)", 《HTTPS://PACKAGES.DEBIAN.ORG/JESSIE/LIBSOXR-DEV》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106921908A (zh) * 2017-03-24 2017-07-04 成都市极米科技有限公司 一种蓝牙音箱实现方法和系统
CN109243472B (zh) * 2018-09-28 2022-08-16 广州小鹏汽车科技有限公司 一种音频处理方法及音频处理系统
CN109243472A (zh) * 2018-09-28 2019-01-18 广州小鹏汽车科技有限公司 一种音频处理方法及音频处理系统
CN109448676A (zh) * 2018-11-09 2019-03-08 广州酷狗计算机科技有限公司 音频处理方法、装置及存储介质
CN109448676B (zh) * 2018-11-09 2024-01-19 广州酷狗计算机科技有限公司 音频处理方法、装置及存储介质
CN109524005A (zh) * 2019-01-24 2019-03-26 深圳市同行者科技有限公司 一种基于安卓系统的车载语音回音消除方法及系统
CN112738576A (zh) * 2019-10-28 2021-04-30 海信视像科技股份有限公司 一种显示设备及声音低延迟处理方法
CN112802440A (zh) * 2019-10-28 2021-05-14 海信视像科技股份有限公司 一种显示设备及声音低延迟处理方法
CN112802440B (zh) * 2019-10-28 2022-10-28 海信视像科技股份有限公司 一种显示设备及声音低延迟处理方法
CN111601157A (zh) * 2020-05-11 2020-08-28 海信视像科技股份有限公司 一种音频输出方法及显示设备
CN111782177A (zh) * 2020-07-10 2020-10-16 安徽芯智科技有限公司 一种基于rtos的音频流输出方法
CN111782177B (zh) * 2020-07-10 2023-10-03 安徽芯智科技有限公司 一种基于rtos的音频流输出方法
CN112803907A (zh) * 2021-03-17 2021-05-14 统信软件技术有限公司 一种提供音频播放服务的系统和方法

Similar Documents

Publication Publication Date Title
CN106528040A (zh) 改进安卓设备音质的方法及装置
CN100511154C (zh) 一种音频驱动程序声音管理方法
CN1779777A (zh) 一种通过截取音频波形进行音频编辑和转化的方法
CN107301035A (zh) 一种基于Android系统的音频同步录放系统及方法
CN105208189B (zh) 音频处理方法及移动终端
CN110175081B (zh) 一种针对Android音频播放的优化系统及其方法
CN104199633B (zh) 多媒体播放设备、播放器自动识别装置及方法
CN107526634A (zh) 安卓设备上同时支持多个录音设备的方法
CN109743442A (zh) 来电提醒方法及终端
CN102385864B (zh) 一种音频数据解码方法、装置及音频播放器
CN102610267A (zh) 一种改善播放系统音频播放质量的方法
WO2022110943A1 (zh) 语音预览的方法及装置
CN108986814A (zh) 一种唤醒应用服务的方法及装置
WO2019144628A1 (zh) 一种降噪方法及电子设备
CN105979187A (zh) 一种数据录制方法及装置
CN105895128A (zh) 一种播放方法和相关装置
CN1941160A (zh) 音频播放模式自动选择装置及方法
JP2005253051A (ja) 通信端末機における3次元ステレオサウンドを再生すると共に貯蔵する装置及び方法
CN101339789A (zh) 一种多媒体引擎的实现方法
WO2022068694A1 (zh) 电子设备及其唤醒方法
CN105869647B (zh) 一种智能手机原生dsd音频解码方法、系统及智能手机
CN105989824A (zh) 一种移动设备的卡拉ok系统及移动设备
CN104200824A (zh) 音频录制方法和装置
CN113992965A (zh) 一种低延迟传输方法及系统
CN102413216A (zh) 实现Android智能移动终端语音通话的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170322