Android平台GB28181设备接入端语音广播如何实现实时音量调节

Android平台GB28181设备接入,语音广播功能非常重要,本文要介绍的,不是语音广播的流程,语音广播流程,之前的blog也有非常详细的分享,感兴趣的可以参考官方规范书的交互流程:

语音广播这块,有开发者提出这样的诉求,如何适时调节语音广播的音量?

因为我们的语音广播,audio的播放,是基于我们RTMP、RTSP直播播放模块设计实现的,对应的接口如下:

	/*** 设置播放音量** @param handle: return value from SmartPlayerOpen()** @param volume: 范围是[0, 100], 0是静音,100是最大音量, 默认是100** @return {0} if successful*/public native int SmartPlayerSetAudioVolume(long handle, int volume);

如果需要实时调节音量,只要加个音量调节的SeekBar即可:

        audioVolumeBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int i, boolean b) {}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {curAudioVolume = seekBar.getProgress();audioVolumeText.setText("当前音量: " + curAudioVolume);if(playerHandle != 0){libPlayer.SmartPlayerSetAudioVolume(playerHandle, curAudioVolume);}}});

如果需要在启动播放的时候,给个默认的初始音量,可以在StartAudioPlay()的时候,设置即可:

    private boolean startAudioPlay() {if (player_handle_ != 0 )return false;player_handle_ = lib_player_.SmartPlayerOpen(context_);if (player_handle_ == 0)return false;lib_player_.SetSmartPlayerEventCallbackV2(player_handle_,new EventHandePlayerV2());// 缓存大小可以调整lib_player_.SmartPlayerSetBuffer(player_handle_, 0);// lib_player_.SmartPlayerSetFastStartup(player_handle_, 0);// set report download speed(默认2秒一次回调 用户可自行调整report间隔)lib_player_.SmartPlayerSetReportDownloadSpeed(player_handle_, 1, 20);lib_player_.SmartPlayerClearRtpReceivers(player_handle_);lib_player_.SmartPlayerAddRtpReceiver(player_handle_, rtp_receiver_handle_);lib_player_.SmartPlayerSetSurface(player_handle_, null);// lib_player_.SmartPlayerSetRenderScaleMode(player_handle_, 1);lib_player_.SmartPlayerSetAudioOutputType(player_handle_, 1);lib_player_.SmartPlayerSetMute(player_handle_, 0);lib_player_.SmartPlayerSetAudioVolume(player_handle_, 100);lib_player_.SmartPlayerSetExternalAudioOutput(player_handle_, new PlayerExternalPCMOutput());lib_player_.SmartPlayerSetUrl(player_handle_, "rtp:--/-/ntinternal/rtpreceiver/implemention0");if (0 != lib_player_.SmartPlayerStartPlay(player_handle_)) {lib_player_.SmartPlayerClose(player_handle_);player_handle_ = 0;Log.e(TAG,  "start audio paly failed");return false;}lib_player_.SmartPlayerSetAudioDataCallback(player_handle_, new PlayerAudioDataOutput());lib_player_.SmartPlayerSetPullStreamAudioTranscodeAAC(player_handle_, 0);if (0 ==lib_player_.SmartPlayerStartPullStream(player_handle_) ) {// 启动定时器,长时间收不到音频数据,则停止播放,发送BYElast_received_audio_data_time_.set(SystemClock.elapsedRealtime());handler_.postDelayed(new AudioPlayerPCMTimer(player_handle_), AudioPlayerPCMTimer.INTERVAL_MS);}return true;}

如果需要静音,audio volume设置为0即可,以上是大概的接口设计和调用逻辑,感兴趣的开发者,可以自行尝试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GB28181基于TCP协议的视音频媒体传输探究及实现

我们先看看官方规范针对TCP协议的视音频传输描述: 实时视频点播、历史视频回放与下载的 TCP媒体传输应支持基于RTP封装的视音频PS流,封装格式参照IETFRFC4571。 流媒体服务器宜同时支持作为TCP媒体流传输服务端和客户端。默认情况下,前端设…

qq浏览器怎么导入其他浏览器收藏夹

现在浏览器种类非常多,有时候由于特殊需要,一个电脑有好几个浏览器,在使用浏览器的过程中收藏夹里的东西非常的多,但时间越久,收藏夹东西累计得越来也多,我们记性再好也会偶尔记不住自己需要的东西是在哪个…

Android平台GB28181接入端如何对接UVC摄像头?

我们在对接Android平台GB28181接入的时候,有公司提出这样的需求,除了采集执法记录仪摄像头自带的数据外,还想通过执法记录仪采集外接UVC摄像头。 实际上,这块对我们来说有点炒冷饭了,不算新的诉求。​大牛直播SDK​在2…

win10系统电脑wifi图标不见了的开启方法

很多的用户都习惯了在桌面右下方的小图标中设置网络,但是很多时候都遇到了图标不见了的情况,win10系统电脑wifi图标不见了怎么办呢?就此问题,今天就为你们带来了win10系统电脑wifi图标不见了的开启方法,一起看看吧。 w…

Android平台实现系统内录(捕获播放的音频)并推送RTMP服务技术方案探究

几年来,我们在做无纸化同屏或在线教育相关场景的时候,总是被一件事情困扰:如何实现Android平台的系统内录,并推送到其他播放端,常用的场景比如做无纸化会议或教育的时候,主讲人或老师需要放一个视频&#x…

windows10电脑无法连接到internet怎么解决

许多上网的小伙伴都不知道电脑无法连接到internet怎么办而导致电脑没法上网的问题,windows10电脑无法连接到internet怎么解决?就此问题,今天就专门为大家带来了电脑无法连接到internet解决方法,快来学习看看吧。 windows10电脑无法连接到int…

Android平台GB28181设备接入端PTZ对接详解

PTZCmd实现背景 上一篇blog“Android平台GB28181设备接入模块之球机/云台控制探究”谈到,Android平台做国标GB28181设备接入端的时候,PTZ控制要不要处理?如果处理,难度大不大? 首先说要不要处理:如果只是…

Win7笔记本查看无线网卡是否“支持的承载网络”的方法

如果你笔记本电脑无线网卡可以支持的承载网络,那么我们就可以将无线网卡开启wifi共享,不过我们要怎么查看呢?就此问题,下面小编介绍Win7笔记本查看无线网卡是否“支持的承载网络”的方法,一起来学习吧! Win7笔记本查看无线网卡是…

Android平台GB28181设备接入模块摄像头采集方向不对怎么办?

背景 我们在做Android平台GB28181设备接入模块的时候,有开发者提到这样的诉求:他们的智能头盔、执法记录仪等设备,采集到的图像,是旋转了90、180甚至270的,设备本身无法针对图像做翻转或者旋转操作,问我们…

Win7系统无法复制粘贴怎么解决

现在电脑已经成为了我们每天都要使用的工具,然而随着使用的时间越长,就越容易出现各种电脑问题,不管是多小的问题,都会影响我们使用电脑。Win7系统无法复制粘贴怎么解决?今天请跟小编一起来看看Win7系统的电脑突然无法…

Android平台GB28181设备接入模块分辨率发生变化怎么办?

技术背景 我们在做Android平台gb28181设备接入模块的时候,遇到这样的情况,比如横竖屏分辨率不锁定,采集摄像头的时候,可以实现,横屏状态采集横屏,竖屏状态采集竖屏,简单来说,横屏状…

如何查看Win11系统的版本号

北京时间6月24日的晚上,微软正式的发布了全新一代的操作系统——Windows11,很多朋友都想第一时间去尝尝鲜,Win11系统有很多版本号,为了深入了解自己系统,于是想要查看一下系统版本,这要怎么查看呢?接下来小…

Win11无法使用以太网怎么办 Win11无法连接网络怎么办

最近有不少Windows用户都将自己的电脑升级到了Windows11系统,但是不少用户在使用的时候也遇到了一些问题,例如有些用户升级后发现自己的以太网无法使用,这要怎么解决呢?下面小编就带着大家一起看看吧! 操作方法: 1、我们可以看…

Win11系统如何设置黑暗模式

微软已经正式的发布了Windows11操作系统,Win11采用的是全新的界面,开始菜单和图标的设计,现在,暗黑模式开始逐渐流行了,很多朋友对黑暗主题情有独钟,黑色的主题特别适合晚上使用电脑,Win11操作系…

RTSP、RTMP播放器拉到的视频图像角度不对怎么办?

我们在做RTSP、RTMP播放器的时候,遇到这样的诉求:特别是RTSP,有些摄像头安装可能倒置或者旋转了90亦或270,拉取到图像,势必需要对视频图像做一定的处理,确保显示正常。 为此,我们提供了以下接口…

Android平台GB28181设备接入端如何调节实时音量?

我们在对接Android平台GB28181设备接入端的时候,有开发者提出这样的疑惑,如何调整设备接入端的实时音量? 实际上,这块我们前几年在做RTMP直播推送模块的时候,已经发布了相关的接口,这里再回顾下&#xff1…

Win10系统如何查看声卡ID

在Win10系统的日常使用过程中,我们可能经常需要去查看电脑的声卡ID,但很多小伙伴都不知道要如何查看声卡ID,那么碰到这种情况时,Win10系统如何查看声卡ID呢?下面就和小编一起来看看Win10系统查看声卡ID的方法吧。 Win10系统如何查…

Win10系统如何退出桌面磁贴功能

桌面磁贴是Modern开始界面下的那些方格,但是很多小伙都用不太习惯却不知道如何去关闭这个功能,那么Win10系统如何退出桌面磁贴功能呢?就此问题,下面小编整理了Win10系统退出桌面磁贴功能的解决方法,一来看看解决办法吧。 Win10系…

【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?

技术背景 这几年,我们对接了太多有RTSP或RTMP直播播放器诉求的开发者,他们当中除了寻求完整的解决方案的,还有些是技术探讨,希望能借鉴我们播放端的开发思路或功能特性,完善自己的产品。 忙里偷闲,今天我…

我正在参加2022年度博客之星评选,大家帮我点个五星好评

大家好,我是音视频牛哥,致力于跨平台的实时RTMP推流、转发、RTMP/RTSP直播播放、GB28181设备接入。 有幸参加2022年度博客之星评选,欢迎大家帮点五星好评。如果我的博客能给开发者带来哪怕一丝启发,对博主来说,也甚感…