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媒体流传输服务端和客户端。默认情况下,前端设…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

rtmp/rtsp/hls公网真正可用的测试地址

相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源,以下是大牛直播SDK(GitHub地址)整理的真正可用的直播地址源。 其中,rtmp和rtsp的url,用我们播放器验证通过。 1. rtmp:…

公网可用的RTMP、RTSP测试地址(更新于2021年3月)

好多博客提到的公网可测试的RTSP和RTMP URL大多都不用了,以下是大牛直播SDK(Github)于2021年3月亲测可用的几个URL,有其他可用的URL,也欢迎大家在评论区回复。 RTMP流地址 湖南卫视:rtmp://58.200.131.2:1935/livetv/hunantv (7…

Unity环境下RTMP推流+RTMP播放低延迟解决方案

在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台Android平台)和RTMP|RTSP拉流(Windows平台Android平台iOS平台)低延迟的解决方案,今天做个整体汇总,权当抛砖引玉。 1. Unity环境下RTM…

麒麟操作系统|Linux下低延时RTMP|RTSP直播播放实现

背景 国产操作系统多为以Linux为基础二次开发的操作系统。2014年4月8日起,美国微软公司停止了对Windows XP SP3操作系统提供服务支持,这引起了社会和广大用户的广泛关注和对信息安全的担忧。而2020年对Windows7服务支持的终止再一次推动了国产系统的发展…

基于RTMP实现Linux|麒麟操作系统下屏幕|系统声音采集推送

背景 Windows操作系统自问世以来,以其简单易用的图形化界面操作受到大众追捧,为计算机的普及、科技的发展做出了不可磨灭的功绩,也慢慢的成为人们最依赖的操作系统。在中国,90%以上的办公环境都是Windows,…

如何快速实现Android平台前端设备接入能力

技术背景 SIP(会话初始化协议)是在 IP网络上进行多媒体通信的应用层控制协议,以几种RFC的形式提供,其中最重要的是包含核心协议规范的RFC3261。该协议用于创建,修改和终止与一个或多个参与者的会话。通过会话,我们了解了一组进行…

长安渝北工厂机器人_长安工厂探秘!解密CS75 PLUS究竟是怎样造出来的

长安CS75 PLUS自打上市以来,销量真的是有目共睹,仅仅一个半月就有3万多的订单,这辆车真的很火很爆款。但我不仅要提出一些疑问了,CS75 PLUS卖这么好,制造工艺怎么样呢?它又是怎么造出来的呢?带着…

threadlocal存连接对象的目的_终于懂了ThreadLocal,不再害怕面试官问了

ThreadLocal解析synchronized和ThreadLocal的区别:synchronized:以时间换空间,只提供一份变量,让不同的线程排队访问,失去了并发性,降低了程序效率,着重对各线程之间访问资源的同步性ThreadLocal:以空间换时…

主板后置音频接口图解_颜值出众、用料靠谱——华擎(ASRock)Z490 Extreme4极限玩家主板 简析...

一、前言你们能想象嘛,那种主板已经到了,处理器却没抢到的感觉。刚开始看到Plus会员提前抢的时候,我心里面还有一些放心,但当时间刚过秒变无货的时候,一切又已回到当初,难受!居然没有首发抢到10…

中查出所有姓张的学生为啥查不出来_只有笔试成绩没有面试成绩是什么原因 教师资格面试成绩怎么查...

[闽南网]对于很多同学来说,今晚是个不眠夜。就在几个小时前,教师资格证面试成绩查询入口开通了,相比之前发布的消息,成绩公布提前了很多。参加了这次教师资格证考试的同学,一得到消息就忙着查成绩,毕竟面试…