毕设做系统与网站答辩,深圳小程序搭建,顺德网站建设效果,汇编做网站我们在对接Android平台GB28181设备接入端的时候#xff0c;有开发者提出这样的疑惑#xff0c;如何调整设备接入端的实时音量#xff1f;
实际上#xff0c;这块我们前几年在做RTMP直播推送模块的时候#xff0c;已经发布了相关的接口#xff0c;这里再回顾下#xff1…我们在对接Android平台GB28181设备接入端的时候有开发者提出这样的疑惑如何调整设备接入端的实时音量
实际上这块我们前几年在做RTMP直播推送模块的时候已经发布了相关的接口这里再回顾下
/** SmartPublisherJniV2.java* Author: daniusdk.com*//*** 设置输入音量, 这个接口一般不建议调用, 在一些特殊情况下可能会用, 一般不建议放大音量** param index: 一般是0和1, 如果没有混音的只用0, 有混音的话, 0,1分别设置音量** param volume: 音量默认是1.0范围是[0.0, 5.0], 设置成0静音, 1音量不变** return {0} if successful*/public native int SmartPublisherSetInputAudioVolume(long handle, int index, float volume);
根据接口描述我们可以很明确的知道我们实时音量调节接口一般建议在[0.0, 1.0]范围内设定也就是说设置0.0的时候相当于实时静音设置1.0的时候是正常采集的音量。
考虑到有些设备采集到的音量比较小我们做了一定的音量放大处理volume范围设置在 [0.0, 5.0]区间一般来说我们不太建议使用或不建议放大范围过大避免破音等不好的体验。
demo如下图音量调节部分选项置于实时静音按钮右侧如果不需要精细化的处理也可以用实时静音接口 接口调用非常简单demo默认加了几个常用的值下拉选择即可 in_audio_volume_selector_ (Spinner) findViewById(R.id.in_audio_volume_selector);final String[] in_audio_volume_sel new String[]{ 0, 0.2, 0.5, 0.8,1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5};ArrayAdapterString adapter_in_audio_volume new ArrayAdapterString(this,android.R.layout.simple_spinner_item, in_audio_volume_sel);adapter_in_audio_volume.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);in_audio_volume_selector_.setAdapter(adapter_in_audio_volume);in_audio_volume_selector_.setSelection(4, true);in_audio_volume_selector_.setOnItemSelectedListener(new OnItemSelectedListener() {Overridepublic void onItemSelected(AdapterView? parent, View view,int position, long id) {Log.i(TAG, Currently audio volume choosing: in_audio_volume_sel[position]);in_audio_volume_ Float.parseFloat(in_audio_volume_sel[position]);Log.i(TAG, Choose audio volume in_audio_volume_);if(isPushingRtmp || isRecording || isRTSPPublisherRunning || isGB28181StreamRunning) {if (libPublisher ! null publisherHandle ! 0) {libPublisher.SmartPublisherSetInputAudioVolume(publisherHandle, 0 , in_audio_volume_);}}}Overridepublic void onNothingSelected(AdapterView? parent) {}});
感兴趣的开发者可以自行参考实现。