昆山做轮胎网站,国外购物平台有哪些,专业网站建设网站推广,协会宣传网站开发方案为什么要做实时音量调节
RTMP或RTSP直播播放音量调节#xff0c;主要用于多实例#xff08;多窗口#xff09;播放场景下#xff0c;比如同时播放4路RTMP或RTSP流#xff0c;如果音频全部打开#xff0c;几路audio同时打开#xff0c;可能会影响用户体验#xff0c;我…为什么要做实时音量调节
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 LOnHScroll 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 LSB_THUMBPOSITION nPos: nPos GetPos(): slider_audio_device_volume_.GetPos() \r\n;OutputDebugString(wss.str().c_str());*/}break;case SB_THUMBTRACK:{/*std::wostringstream wss;wss LSB_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直播播放器的扩展功能在好多行业用处很大如教育类、监控类多窗口大屏环境下播放场景感兴趣的开发者可以试试看。