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

112 阅读1分钟

​我们在做Windows平台RTSP、RTMP播放器的时候,有这样的技术需求,特别是多路监控的时候,并不是每一路audio都需要播放出来的,所以,这时候,需要有针对音量调节的设计:

/*
 * 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);
	}
}