好多开发者在播放RTSP或RTMP流的时候,特别是多路播放的时候,希望能试试调节单个视频画面的声音(静音或放大缩小音量),常见的实时调节播放音量可以通过以下方式实现:
在某些情况下,我们可能无法直接通过播放器控制音量,这时候,可以使用操作系统的全局音频控制来调节RTSP或RTMP播放器的音量。大多数操作系统都提供了系统级的音频控制功能,通常可以通过任务栏上的音量图标或系统设置中的音频选项进行调节。当你调整系统音量时,所有正在播放音频的应用程序(包括 RTMP 播放器)的音量也会相应地改变。
一个功能完善的RTSP或RTMP播放器,一般自带实时静音或实时音量调节,如果支持这种模式,就非常方便,可以只条件播放器的volume,不影响系统的音量。
VLC Media Player 是一款免费、开源的多媒体播放器,具有强大的功能和广泛的适用性。
PotPlayer 是一款功能强大的多媒体播放器,具有以下特点和功能:
SmartPlayer是大牛直播SDK旗下的跨平台(支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台)、功能完善、性能优异、毫秒级超低延迟(可达150-300ms延迟)的RTSP、RTMP播放器,以下是其主要功能列表:
以大牛直播SDK的Windows平台RTSP、RTMP播放器为例,最早,我们设计的接口如下,直接通过实时静音来完成音量调节:
/*
* smart_player_sdk.cs
* Created by daniusdk.com on 2017/04/19.
* WeChat: xinsheng120
*/
/*
* 静音接口,1为静音,0为不静音
*/
[DllImport(@"SmartPlayerSDK.dll")]
public static extern UInt32 NT_SP_SetMute(IntPtr handle, Int32 is_mute);
随着需求越来越多,好多场景下,希望能实时调节播放器的音量,所以,后续我们设计了实时音量调节接口:
/*
* smart_player_sdk.cs
* Created by daniusdk.com on 2017/04/19.
* WeChat: xinsheng120
*/
/*
* 设置播放音量, 范围是[0, 100], 0是静音,100是最大音量, 默认是100
*/
[DllImport(@"SmartPlayerSDK.dll")]
public static extern UInt32 NT_SP_SetAudioVolume(IntPtr handle, Int32 volume);
调用如下,拖动实时音量调节slider即可实现播放音量的动态调整,如果需要实时静音,调整到0,或者是直接SetMute设置0即可。
if (checkBox_mute.Checked)
{
NTSmartPlayerSDK.NT_SP_SetMute(player_handle_, 1);
}
else
{
NTSmartPlayerSDK.NT_SP_SetMute(player_handle_, 0);
}
private void slider_audio_volume_ValueChanged(object sender, EventArgs e)
{
cur_audio_volume.Text = slider_audio_volume.Value.ToString();
if (is_playing_ && player_handle_ != IntPtr.Zero)
{
NTSmartPlayerSDK.NT_SP_SetAudioVolume(player_handle_, slider_audio_volume.Value);
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。