当前位置: 首页 > article >正文

WPF+LibVLC开发播放器-音量控制和倍速控制

界面

界面上增加音量的控件和倍速控制控件

在这里插入图片描述

音量控制

主要也是一个Slider进度条控件来实现音量调节

我们这里设置默认的最大值为100,默认Value值也为100,默认声音开到最大

这里目前完全由前端控制音量调节,可以直接使用ValueChanged事件实现

<Slider
    Width="120"
    Margin="0,30,0,0"
    HorizontalAlignment="Center"
    VerticalAlignment="Top"
    Maximum="100"
    ValueChanged="Slider_ValueChanged"
    Value="100" />
<TextBlock
    Margin="280,35,0,6"
    HorizontalAlignment="Left"
    Text="音量"
    TextWrapping="Wrap" />

代码实现

直接实现一下Slider_ValueChanged事件,我们获取下Slider的当前值,将他转换后,赋值给MediaPlayer的Volume 属性

Volume 属性:获取/设置音量百分比,从0-100,0就是静音

private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
 if (_player != null)
 {
     var slider = (Slider)sender;
     _player.Volume = Convert.ToInt32(slider.Value);
 }
}

倍速控制

这里主要使用一个ComboBox来添加倍速的选项

通过SelectionChanged事件才触发倍速修改

 <TextBlock
     Margin="508,32,0,0"
     HorizontalAlignment="Left"
     VerticalAlignment="Top"
     Text="倍速"
     TextWrapping="Wrap" />
 <ComboBox
     Name="SpeedCBox"
     Width="120" SelectionChanged="SpeedCBox_SelectionChanged"
     Margin="557,29,0,0"
     HorizontalAlignment="Left"
     VerticalAlignment="Top" />

代码实现

直接实现一下SpeedCBox_SelectionChanged我们获取下ComboBox的当前选项,通过SetRate方法设置播放速率

 private void SpeedCBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (_player != null)
     {
         _player.SetRate((float)SpeedCBox.SelectedItem);
     }
 }

效果

实现了音量控制和倍速播放

在这里插入图片描述

视频教程

WPF+LibVLC开发播放器-实现播放器音量控制


http://www.kler.cn/a/430377.html

相关文章:

  • 操作手册:集成钉钉审批实例消息监听配置
  • Jenkins内修改allure报告名称
  • 如何配置Cursor的显示主题模式
  • 【网络协议】IPv4 地址分配 - 第二部分
  • 51单片机——中断(重点)
  • 服务器漏洞修复解决方案
  • AKE 安全模型:CK, CK+, eCK
  • 火山引擎数据飞轮最新活动:结合大模型能力,探索金融行业数智化落地新可能
  • vue实现导出excel表,调整图片大小
  • ios逆向某新闻 md5+aes
  • Oracle清除水位
  • 5G Multicast/Broadcast Services(MBS) (八) MBS多播DRX
  • Reclone映射webdav到本地(Linux)
  • 《探索形象克隆:科技与未来的奇妙融合》
  • 练7:模拟
  • 【服务器部署应用由http协议切换为https】
  • 【MARL】MAT论文阅读笔记
  • 【docker集群应用】Docker Compose
  • 沃丰科技智能客服在跨境电商独立站中的核心角色
  • 在Ubuntu上使用docker compose安装N卡GPU的Ollama服务
  • 什么是云原生数据库 PolarDB?
  • Linux学习笔记14 了解磁盘:何为HDD,SSD?sata?PCIE?分区,MBR,GPT (上)
  • vue3 rective 全家桶,to类了解 (1)
  • 项目实践----Spring Boot整合Kafka,实现单条消费和批量消费
  • 河南省的教育部科技查新工作站有哪些?
  • SpringBoot篇(缓存层)