如何让安卓内嵌WebView调节音量

如何让安卓内嵌WebView调节音量,第1张

在开发浏览器的过程中,发现打开视频的时候,无法调音量,最后发现是keyCode == KeyEventKEYCODE_BACK里面的问题

如果return true,那么就结束了事件,相当于屏蔽了音量键。但是不return true,就要加以判断是否是多次按下

webView播放视频(html5 video) 手机侧面按键无法调节音量大小,但是页面上的音量控制条可以拖动调节,是不是需要webview开启某个属性才支持啊

AudioManager audioManager = (AudioManager) KKApplicationgetInstance()

getSystemService(ContextAUDIO_SERVICE);

int maxVolume = audioManagergetStreamMaxVolume(AudioManagerSTREAM_MUSIC);

audioManagersetStreamVolume(AudioManagerSTREAM_MUSIC,maxVolume , 0);

拨号盘中:

mToneGeneratorstartTone(tone, TONE_LENGTH_MS);

然后ToneGeneratorjava中

public native boolean startTone(int toneType, int durationMs);

然后走JNI-》android_media_ToneGeneratorcpp

pToneGen->startTone(toneType, durationMs);

最后走到ToneGeneratorcpp中的

bool ToneGenerator::startTone(int toneType, int durationMs)而这个又调用prepareWave()

在prepareWave()中

ToneGenerator::WaveGenerator lpWaveGen =

new ToneGenerator::WaveGenerator((unsigned short)mSamplingRate,

frequency,

TONEGEN_GAIN/lNumWaves);

最后一个参数是设置声音大小,将TONEGEN_GAIN该小应该就可以了

楼主说的是这个吗?我这个是基于展讯的平台,跟默认的android平台稍微有点差别,但应该差别不大

音量变化是比较频繁的,通常是低于50毫秒。

所以你取得的音量大小是一条密集的点组成的曲线,要动态的展示这些密集的点,有两种不同的实现方式,效果也不一致。

把这些点分成不同的区间。比如5个区间,每个区间对应一张(也可以是动态的AnimationDrawable),取得音量后判断是哪个区间,设置对应的。打个比方,如果是用格数来表示,就有五张表示1-5格,音量最大值可以通过mediaRecordergetMaxAmplitude()获得。分成五个区间,每个区间显示对应格数的。当然,这个也可以是类似水波在荡漾的动态,用AnimationDrawable来播放。

平滑的处理这些点。把上一次的位置与这一次的位置做一个动画,如果采集频率为50毫秒,动画的duration就是50ms。比如是做一个圆圈,随着音量大小变化,那么可以参照如下的属性动画:

PropertyValuesHolder pvhX = PropertyValuesHolderofFloat("scaleX", lastScale, scale);

PropertyValuesHolder pvhY = PropertyValuesHolderofFloat("scaleY", lastScale, scale);

valumeAnimator = ObjectAnimatorofPropertyValuesHolder(speakVolumeImageV, pvhX, pvhY);

valumeAnimatorsetDuration(MIN_TIME)start();

通过放大和缩小speakVolumeImageV来展示当前音量。其中scale是此次的缩放比,lastScale是上次的缩放比。缩放比初始为10f,如果最大只能放大到speakVolumeImageV的两倍大,那么可以这样计算

Float scale = 10f;

if (volume == 0) {

 scale = 10f;

} else {

  scale = 10f + (volume / MAX_VOLUME 10f);

}

您好,看到您的问题将要被新提的问题从问题列表中挤出,问题无人回答过期后会被扣分并且悬赏分也将被没收!所以我给你提几条建议:

一、您可以选择在正确的分类下去提问或者到与您问题相关专业网站论坛里去看看,这样知道你问题答案的人才会多一些,回答的人也会多些;

二,遇到问题时可以直接向这些好友询问,他们会更加真诚热心为你寻找答案的;

三、该自己做的事还是必须由自己来做的,有的事还是须由自己的聪明才智来解决的,别人不可能代劳!只有自己做了才是真正属于自己的,别人只能给你提供指导和建议,最终靠自己;

四、 您可以不采纳我的答案,但请你一定采纳我的建议哦! 虽然我的答案很可能不能解决你的问题,但一定可以使你更好地使用问问哦~

直接用代码调系统音量

通过VideoView播放视频的步骤:

1、在界面布局文件中定义VideoView组件,或在程序中创建VideoView组件

2、调用VideoView的如下两个方法来加载指定的视频

setVidePath(String path):加载path文件代表的视频

setVideoURI(Uri uri):加载uri所对应的视频

3、调用VideoView的start()、stop()、psuse()方法来控制视频的播放

VideoView通过与MediaController类结合使用,开发者可以不用自己控制播放与暂停

以上就是关于如何让安卓内嵌WebView调节音量全部的内容,包括:如何让安卓内嵌WebView调节音量、安卓开发如何让软件强制把手机媒体音量调到最大、(Android系统开发)Android触摸的提示音的音量的修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9706057.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存