Windows平台RTMP/RTSP播放器如何实现实时音量调节
生活随笔
收集整理的這篇文章主要介紹了
Windows平台RTMP/RTSP播放器如何实现实时音量调节
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么要做實時音量調節(jié)
RTMP或RTSP直播播放音量調節(jié),主要用于多實例(多窗口)播放場景下,比如同時播放4路RTMP或RTSP流,如果音頻全部打開,幾路audio同時打開,可能會影響用戶體驗,我們通用的做法是支持播放端實時靜音,更細粒度的做法是可以實時調節(jié)每一路RTMP/RTSP流的音量。
音量調節(jié)接口設計
RTMP或RTSP直播播放端音量調節(jié)功能設計主要考慮到一點,和市面通用的本地播放器或點播播放器功能對齊(如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控件為例,音量調節(jié)力度,設置到[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); }實時音量調節(jié)作為RTSP或RTMP直播播放器的擴展功能,在好多行業(yè)用處很大,如教育類、監(jiān)控類多窗口(大屏環(huán)境下)播放場景,感興趣的開發(fā)者可以試試看。
總結
以上是生活随笔為你收集整理的Windows平台RTMP/RTSP播放器如何实现实时音量调节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】机器学习基础知识常见问题详解
- 下一篇: 紫东太初:自动化所开源图-文-音三模态的