Windows平台RTMP/RTSP播放器如何实现实时音量调节

为什么要做实时音量调节

RTMP或RTSP直播播放音量调节,主要用于多实例(多窗口)播放场景下,比如同时播放4路RTMP或RTSP流,如果音频全部打开,几路audio同时打开,可能会影响用户体验,我们通用的做法是支持播放端实时静音,更细粒度的做法是可以实时调节每一路RTMP/RTSP流的音量。

音量调节接口设计

RTMP或RTSP直播播放端音量调节功能设计主要考虑到一点,和市面通用的本地播放器或点播播放器功能对齐(如VLC、PotPlayer等),音量可以实时调整即可,本文以大牛直播SDK的Windows平台RTSP直播播放SDK/RTMP直播播放SDK的C++接口demo为例(C#亦可,具体可参照 Github),简单介绍下相关的接口设计和用法。

		/*设置播放音量, 范围是[0, 100], 0是静音,100是最大音量, 默认是100调用正确返回NT_ERC_OK*/NT_UINT32(NT_API *SetAudioVolume)(NT_HANDLE handle, NT_INT32 volume);

具体调用:

C++的demo以CSliderCtrl控件为例,音量调节力度,设置到[0, 100], 设置为0时,实时静音,设置为100时,默认原音量输出,具体调用如下:

	CSliderCtrl slider_audio_volume_;player_api_.SetAudioVolume(player_handle_, slider_audio_volume_.GetPos());
void CSmartPlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{// TODO: Add your message handler code here and/or call defaultif (IDC_SLIDER_VOLUME == pScrollBar->GetDlgCtrlID()){switch (nSBCode){case SB_LINELEFT:case SB_LINERIGHT:case SB_PAGELEFT:case SB_PAGERIGHT:case SB_LEFT:case SB_RIGHT:{/*std::wostringstream wss;wss << L"OnHScroll nSBCode:" << nSBCode << " nPos:" << nPos << " GetPos():" << slider_audio_device_volume_.GetPos()<< "\r\n";OutputDebugString(wss.str().c_str());*/if (is_playing_ && player_handle_ != NULL){player_api_.SetAudioVolume(player_handle_, slider_audio_volume_.GetPos());}}break;case  SB_THUMBPOSITION:{/*std::wostringstream wss;wss << L"SB_THUMBPOSITION" << " nPos:" << nPos << " GetPos():" << slider_audio_device_volume_.GetPos()<< "\r\n";OutputDebugString(wss.str().c_str());*/}break;case SB_THUMBTRACK:{/*std::wostringstream wss;wss << L"SB_THUMBTRACK" << " nPos:" << nPos << " GetPos():" << slider_audio_device_volume_.GetPos()<< "\r\n";OutputDebugString(wss.str().c_str());*/if (is_playing_ && player_handle_ != NULL){player_api_.SetAudioVolume(player_handle_, slider_audio_volume_.GetPos());}}break;default:break;}}CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}

实时音量调节作为RTSP或RTMP直播播放器的扩展功能,在好多行业用处很大,如教育类、监控类多窗口(大屏环境下)播放场景,感兴趣的开发者可以试试看。

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

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

相关文章

TIM待办事项怎么删除 TIM删除待办事项的教程

TIM新建的待办事项没用的话或者搞错了&#xff0c;可以直接删掉。该怎么删除tim中的待办事项呢?下面我们就来看看详细的教程。 1、打开电脑上的个人头像。 TIM待办事项怎么删除? TIM删除待办事项的教程 2、点击待办&#xff0c;查看新建的待办事项。 TIM待办事项怎么删除…

Android同屏或摄像头RTMP推送常用的数据接口设计探讨

前言 好多开发者在调用Android平台RTMP推送或轻量级RTSP服务接口时&#xff0c;采集到的video数据类型多样化&#xff0c;如420sp、I420、yv12、nv21、rgb的&#xff0c;还有的拿到的图像是倒置的&#xff0c;如果开发者在上层转换后&#xff0c;传到底层编码处理&#xff0c;…

跨平台屏幕/摄像头RTMP推流模块设计要点

经常有企业或开发者有这样的疑惑&#xff0c;明明看到网上的demo&#xff0c;一个RTMP推送&#xff0c;五六个接口就搞定了&#xff0c;你们咋就搞得这么复杂&#xff1f; 以大牛直播SDK的&#xff08;Github&#xff09;Windows RTMP推流为例&#xff0c;我们的接口要100多个…

企业微信怎么下载资料 企业微信下载资料教程

打开电脑&#xff0c;点击桌面企业微信; 企业微信怎么下载资料&#xff1f;企业微信下载资料教程 进入企业微信&#xff0c; 点击微盘; 企业微信怎么下载资料&#xff1f;企业微信下载资料教程 之后&#xff0c;点击公司资料; 企业微信怎么下载资料&#xff1f;企业微信下…

Android平台Camera2数据如何对接RTMP推流到服务器

1. Camera2架构 在Google 推出Android 5.0的时候, Android Camera API 版本升级到了API2(android.hardware.camera2), 之前使用的API1(android.hardware.camera)就被标为 Deprecated 了。 Camera API2相较于API1有很大不同, 并且API2是为了配合HAL3进行使用的, API2有很多API…

钉钉一个人怎么多部门 钉钉一个人加入多个部门的技巧

公司的组织机构总是会出现少几个人员&#xff0c;一个人身兼多职的情况&#xff0c;这对于我们设计审核流程的人来说是很多痛的一件事&#xff0c;会写好几种的条件判断&#xff0c;一有人离职了就得重新调整流程。如果一个人可以同时加入多个部门&#xff0c;这样这个问题就很…

IE浏览器下如何低延迟播放RTSP或RTMP流

首先&#xff0c;虽然本文是介绍IE浏览器下OCX控件播放RTSP或RTMP&#xff0c;但这种方式并不推荐&#xff0c;毕竟它只能用于IE浏览器环境下&#xff0c;局限太大&#xff0c;而且随着微软IE浏览器的更新&#xff0c;不确定后续支持情况。当然&#xff0c;话说回来&#xff0c…

Android、iOS平台RTMP/RTSP播放器实现实时音量调节

介绍移动端RTMP、RTSP播放器实时音量调节之前&#xff0c;我们之前也写过&#xff0c;为什么windows播放端加这样的接口&#xff0c;windows端播放器在多窗口大屏显示的场景下尤其需要&#xff0c;尽管我们老早就有了实时静音接口&#xff0c;相对实时静音来说&#xff0c;播放…

千牛如何装修店铺 千牛装修店铺的教程

1、首先登录千牛卖家版&#xff0c;输入淘宝账号和密码。 2、在界面的横向工作栏中选择店铺管理&#xff0c;找到【店铺装修】选项。 千牛如何装修店铺?千牛装修店铺的教程 3、在左侧工具栏中选择需要修改的部分&#xff0c;目前可选择模块、配色、页头、页面、CSS等部分。…

Windows平台RTMP播放器/RTSP播放器如何在播放窗口添加OSD文字叠加

好多开发者在做Windows平台特别是单屏多画面显示时&#xff0c;希望像监控摄像机一样&#xff0c;可以在播放画面添加OSD台标&#xff0c;以实现字符叠加效果&#xff0c;大多开发者可很轻松的实现以上效果&#xff0c;针对此&#xff0c;本文以大牛直播SDK &#xff08;Github…

6款真正好用的播放器推荐

GOM player GOM player 是一款本身装有视频播放所需的解码&#xff0c;及占用系统资源少&#xff0c;并且能以最优秀的画质来观看多种格式影片的播放程序。 可以支持播放大多数当前流行的视频格式&#xff0c;如&#xff1a;MP4、AVI、WMV、MKV、MOV、FLV 等)&#xff0c;并且…

win7系统电脑运行速度的提升方法

win7系统是一款被大多数用户们认可的好用系统&#xff0c;在不断的对win7系统的使用中很多用户们都在寻找win7提高电脑运行速度的方法&#xff0c;今天小编就为大家带来了win7系统电脑运行速度的提升方法&#xff0c;让我们一起来看一下吧。 win7系统电脑运行速度的提升方法 …

Windows平台Unity3d下如何同时播放多路RTSP或RTMP流

好多开发者在做AR、VR或者教育类产品时&#xff0c;苦于如何在windows平台构建一个稳定且低延迟的RTSP或者RTMP播放器&#xff0c;如果基于Unity3d完全重新开发一个播放器&#xff0c;代价大、而且周期长&#xff0c;不适合快速出产品&#xff0c;我们认为当前最好的方式就是集…

如何修改Win11睡眠时间

近日&#xff0c;微软发布了 Win11 的首个预览版&#xff0c;所有之前已加入到 Insider Preview 的用户都能收到这个版本。该版本融入了发布会里的很多变化&#xff0c;但并未添加 Microsoft Teams 和安卓应用支持。相信很多朋友已经安装体验了一把。大家知道为了节省电量&…

Android平台使用Camera2(5.0+)替代过时的Camera

转自&#xff1a;https://forums.developer.amazon.com/articles/2707/using-camera2-to-replace-deprecated-camera-api.html From Android 5.0(API Level 21) the new Camera2 API(android.hardware.Camera2) is introduced which now gives full manual control over Andro…

RTMP播放器开发填坑之道

好多开发者提到&#xff0c;在目前开源播放器如此泛滥的情况下&#xff0c;为什么还需要做自研框架的RTMP播放器&#xff0c;自研和开源播放器&#xff0c;到底好在哪些方面&#xff1f;以下大概聊聊我们的一点经验&#xff0c;感兴趣的&#xff0c;可以关注 github&#xff1a…

Win11系统语言修改不了中文怎么办

一些升级了Win11系统的朋友发现升级后发现是英文版的&#xff0c;怎么把英文版的换成中文版的呢?下面为大家带来如何把Win11系统语言从英文变成中文&#xff0c;方法非常简单。 Win11系统语言修改不了中文怎么办 1、首先打开区域和语言设置(搜索)&#xff0c;看看是否有“显…

Vscode —— 解决Vscode终端无法使用npm的命令的问题

在cmd中可以正常执行npm -v等指令,但是在vs code终端中,无法执行npm -v,node -v等指令 出现报错 解决办法&#x1f447; 方法一&#xff1a;【右键单击Vscode】以【管理员身份运行】&#xff0c;【重启Vscode】 方法二&#xff1a;①【用户变量】的【path】添加npm所在路径的…

RTSP播放器开发填坑之道

好多开发者提到&#xff0c;在目前开源播放器如此泛滥的情况下&#xff0c;为什么还需要做自研框架的RTSP播放器&#xff0c;自研和开源播放器&#xff0c;到底好在哪些方面&#xff1f;以下大概聊聊我们的一点经验&#xff0c;感兴趣的&#xff0c;可以关注 github&#xff1a…

ijkplayer、VLC Player、SmartPlayer、ExoPlayer播放器比较

ijkPlayer ijkPlayer是BiliBili公司维护的一个开源工程&#xff0c;基于ffmpeg开发的一个播放器软件&#xff0c;支持Android和iOS平台&#xff0c;整个ijkplayer就是以ffplay为基础&#xff0c;如果只是使用它进行播放&#xff0c;集成也较为简单&#xff0c;使用也和MediaPl…