一种播放器音量动态控制方法

文档序号:812525 发布日期:2021-03-26 浏览:17次 >En<

阅读说明:本技术 一种播放器音量动态控制方法 (Dynamic control method for volume of player ) 是由 李金国 雷媛媛 于 2020-12-09 设计创作,主要内容包括:本发明公开了一种播放器音量动态控制方法,在播放器起播时,读取系统音量,根据系统音量与受控阈值,利用音量控制函数进行计算得到需要调整的音量缩放因子scale,并设置给播放器;注册系统音量变化的监听广播,在收到系统音量变化广播后,读取系统音量,重新利用音量控制函数进行计算得到新的音量缩放因子scale,并设置给播放器。本发明能够保证播放器在起播瞬间,实际的播放音量就在受控阈值内,同时系统音量发生变化,实际的播放音量也不会超出阈值,保证播放器的播放体验。并且,所有的音量调整都是基于系统音量调整MediaPlayer的音量,不会影响用户设置的系统音量。(The invention discloses a dynamic control method for volume of a player, which comprises the steps of reading system volume when the player plays, calculating by using a volume control function according to the system volume and a controlled threshold value to obtain a volume scaling factor scale needing to be adjusted, and setting the volume scaling factor scale to the player; and registering a monitoring broadcast of the system volume change, reading the system volume after receiving the system volume change broadcast, calculating by using the volume control function again to obtain a new volume scaling factor scale, and setting the new volume scaling factor scale to the player. The invention can ensure that the actual playing volume is within the controlled threshold value at the moment of starting playing of the player, and meanwhile, the system volume changes, so that the actual playing volume does not exceed the threshold value, thereby ensuring the playing experience of the player. Moreover, all volume adjustment is based on the system volume to adjust the volume of the MediaPlayer, and the system volume set by the user is not influenced.)

一种播放器音量动态控制方法

技术领域

本发明涉及数据通信技术领域,尤其涉及一种播放器音量动态控制方法。

背景技术

在Android设备上,使用媒体播放器MediaPlayer播放音视频时,默认情况下都是跟随系统音量,随用户对音量的调节而变化。在某些场景下,例如随时可能呈现的推送广告等场景,如果系统音量过大,在广告视频播放的瞬间声音会非常大,严重影响用户体验,因此,需要一种方法来对这种场景下的音视频音量进行动态平衡控制。通常的方法是在媒体开始播放后,去设置系统音量在一个较小值,在播放结束时再将系统音量还原,但是此方法,由于直接修改了系统音量,若用户在播放过程中,调节了一个合适的系统音量,那么在播放结束后也会被还原,造成不良体验。另外一个方法是直接调整MediaPlayer的音量,但是由于系统音量的不确定性,仍然可能存在声音过大的问题。

发明内容

本发明提供了一种播放器音量动态控制方法,以解决现有技术中部分播放场景下音量过大导致用户体验差的问题。

本发明采用的技术方案是:一种播放器音量动态控制方法,包括:

在播放器起播时,读取系统音量,根据系统音量与受控阈值,利用音量控制函数进行计算得到需要调整的音量缩放因子scale,并设置给播放器。

优选地,所述音量控制函数在MediaPlayer的start()函数之前被调用。

优选地,所述受控阈值的提供方式包括本地固定和/或云端下发。

优选地,所述方法还包括:

注册系统音量变化的监听广播,在收到系统音量变化广播后,读取系统音量,重新利用音量控制函数进行计算得到新的音量缩放因子scale,并设置给播放器。

优选地,系统音量变化广播注册在MediaPlayer的start()函数之前被调用。

本发明的有益效果是:基于本专利所提供的方法,能够保证播放器在起播瞬间,实际的播放音量就在受控阈值内,同时系统音量发生变化,实际的播放音量也不会超出阈值,保证播放器的播放体验。并且,所有的音量调整都是基于系统音量调整MediaPlayer的音量,不会影响用户设置的系统音量。

附图说明

图1为本发明公开的一种播放器音量动态控制方法流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步详细描述,但本发明的实施方式不限于此。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

实施例1:

参见图1,一种播放器音量动态控制方法,在播放器起播时,可能当时的系统音量被设置的很大,起播瞬间声音异常大,导致用户使用体验不佳。针对此问题,本发明进行如下方法控制播放器起播时的音量:

步骤A1:在播放时初始化后,加入对播放器加载的监听,确保在加载完成后,准备调用start()函数之前能够插入音量控制函数。

步骤A2:基于步骤A1中,在播放器prepared完成后,准备start播放之前,调用音量控制函数对音量进行调整。

步骤A3:基于步骤A2中,音量控制函数的实现为,通过AudioManager的getStreamVolume函数读取当前的系统音量值x,并根据受控阈值(a,b)和函数进行调整,例如:scale=1.0(x<a),scale=(a+(x-a)/(100-a)/(b-a))/x;(x>=a,x<=100)。其中,音量控制函数是根据当前系统音量值及受控阈值,计算得到一个能够将系统音量映射到受控阈值上的缩放值,函数可以根据实际的控制需求进行调整。

基于步骤A1-A3中,完成了对于播放器起播时音量的动态调整,但由于在播放过程中,用户可能手动操作调整系统音量,仍然可能导致音量很大。针对此问题,本发明进行如下方法控制播放过程中的动态音量:

步骤B1:在播放器起播的同时,同步添加对系统音量变化广播(android.media.VOLUME_CHANGED_ACTION")的监听。

步骤B2:在收到系统音量变化广播之后,立即执行步骤A3所实现的音量控制函数,读取变化后的系统音量,重新对音量进行计算得到缩放值并进行调整。

具体的,基于步骤A1-A3及B1-B2中所提及的音量调整,其音量调整的具体方式为:

通过MediaPlayer的setVolume方法,将A1-A3及B1-B2中计算得到的音量缩放因子scale值设置给MediaPlayer。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

5页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种确定起始及其在数码信号中的位置的方法、数码信号处理器以及声频系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!