WinForm音乐播放器_控控控-上ke控_新浪博客

2024-05-03 15:38

本文主要是介绍WinForm音乐播放器_控控控-上ke控_新浪博客,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

:当播放列表为空时会自动播放默认的背景音乐;
如:
WinForm音乐播放器

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Drawings_Client
{
public partial class FrmPlayer : Form
{
///
/// 当播放列表为空时默认的背景音乐
///
System.Media.SoundPlayer startSound = new System.Media.SoundPlayer(Application.StartupPath + @"\斗地主.wav");
///
/// 用于保存歌曲目录
///
string[] musicPath = new string[100];  //用于保存歌曲目录 

int musicCount = 0;

public FrmPlayer()
{
InitializeComponent();

}


private void FrmPlayer_Load(object sender, EventArgs e)
{
myPlyer.BeginInit();  //初始化           
myPlyer.settings.autoStart = true;  //自动播放       
myPlyer.settings.setMode("shuffle", false);  //顺序播放      
myPlyer.settings.enableErrorDialogs = true;
myPlyer.settings.balance = 0;
myPlyer.settings.mute = false;
myPlyer.settings.volume = 100;  //声音设为最大                            
if (File.Exists("Musiclist.txt"))  //如果存在播放列表,那么加载播放列表     
{
StreamReader reader = new StreamReader("Musiclist.txt");
try
{
while (reader.Peek() != -1)
{
string filepath = reader.ReadLine();
if (File.Exists(filepath))
{
musicPath[musicCount++] = filepath;
string filename = Path.GetFileName(filepath).Split('.')[0];

comboBox1.Items.Add(filename);  //listbox用来显示歌曲名 
myPlyer.currentPlaylist.insertItem(myPlyer.currentPlaylist.count, myPlyer.newMedia(filepath));
}
}
comboBox1.SelectedIndex = 0;
}
catch (Exception)
{
comboBox1.SelectedIndex = -1;
startSound.PlayLooping();
// MessageBox.Show("加载播放列表失败或者列表为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
reader.Close();
}
}

}
///
/// 音量大小条
///
///
///
private void mediaSlider1_ValueChanged(object sender, EventArgs e)  //音量设置
{
myPlyer.settings.volume = mediaSlider1.Value;
}

///
/// 播放列表选择歌曲
///
///
///
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)     //播放列表中选中的歌曲    
{
if (comboBox1.Items.Count > 0 && comboBox1.SelectedIndex >= 0)
{
startSound.Stop();
myPlyer.Ctlcontrols.playItem(myPlyer.currentPlaylist.get_Item(comboBox1.SelectedIndex));
}
}

///
/// 关闭窗体
///
///
///
private void FrmPlayer_FormClosing(object sender, FormClosingEventArgs e)
{
startSound.Stop();
myPlyer.Ctlcontrols.stop();
myPlyer.close();  //关闭播放器      
StreamWriter writer = new StreamWriter("Musiclist.txt", false, Encoding.Unicode);  //保存播放列表    
for (int i = 0; i <= musicCount - 1; i++)
{
if (musicPath[i] != string.Empty)
{
writer.WriteLine(musicPath[i]);
}
}
writer.Close();
}

#region 窗体的按钮事件

///
/// 添加音乐或播放列表
///
///
///
private void pictureBoxAdd_Click(object sender, EventArgs e)                    //添加歌曲
{
DialogResult dr1 = openFileDialog1.ShowDialog();                 //添加单曲
if (dr1 == DialogResult.OK)
{
string filepath = openFileDialog1.FileName;
string filename = Path.GetFileName(filepath);
comboBox1.Items.Add(filename); musicPath[musicCount++] = filepath;
myPlyer.currentPlaylist.insertItem(myPlyer.currentPlaylist.count, myPlyer.newMedia(filepath));
}
StreamWriter writer = new StreamWriter("Musiclist.txt", false, Encoding.Unicode);  //保存播放列表    
for (int i = 0; i <= musicCount - 1; i++)
{
if (musicPath[i] != string.Empty)
{
writer.WriteLine(musicPath[i]);
}
}
writer.Close();
//DialogResult dr = folderBrowserDialog1.ShowDialog();          //添加文件夹
//if (dr == DialogResult.OK)
//{
//    string[] filepath = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
//    foreach (string s in filepath)
//    {
//        if (Path.GetExtension(s) == ".mp3")
//        {
//            string filename = Path.GetFileName(s);
//            comboBox1.Items.Add(filename);
//            musicPath[musicCount++] = s;
//            myPlyer.currentPlaylist.insertItem(myPlyer.currentPlaylist.count, myPlyer.newMedia(s));
//        }
//    }
//}
}

///
/// 上一首
///
///
///
private void pictureBoxB_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
comboBox1.SelectedIndex = comboBox1.Items.Count - 1;
}
else
{
comboBox1.SelectedIndex--;
}
myPlyer.Ctlcontrols.previous();
}

///
/// 播放和暂停
///
///
///
private void pictureBoxS_Click(object sender, EventArgs e)
{

if (this.toolTip1.GetToolTip(this.pictureBoxS) == "播放")//通过判断气球提示文字改变图片状态
{
startSound.Stop();
pictureBoxS.Image = Properties.Resources.b1; ;//调用资源文件图片
this.toolTip1.SetToolTip(this.pictureBoxS, "暂停");
myPlyer.Ctlcontrols.pause();
comboBox1.Enabled = true;
}
else
{
if (comboBox1.SelectedIndex != -1)
{
myPlyer.Ctlcontrols.play();
comboBox1.Enabled = false;
}
else
{
startSound.PlayLooping();
}

pictureBoxS.Image = Properties.Resources.b2;
this.toolTip1.SetToolTip(this.pictureBoxS, "播放");

}
}

///
/// 下一首
///
///
///
private void pictureBoxN_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == comboBox1.Items.Count - 1)
{
comboBox1.SelectedIndex = 0;
}
else
{
comboBox1.SelectedIndex++;
}

myPlyer.Ctlcontrols.next();
}

///
/// 静音
///
///
///
private void pictureBoxY_Click(object sender, EventArgs e)
{
if (myPlyer.settings.mute == false)
{
myPlyer.settings.mute = true;
pictureBoxY.Image = Properties.Resources.d2;
}
else
{
myPlyer.settings.mute = false;
pictureBoxY.Image = Properties.Resources.d;
}
}

#endregion
}
}



这篇关于WinForm音乐播放器_控控控-上ke控_新浪博客的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957073

相关文章

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst

搜狗浏览器打开CSDN博客排版错乱问题解决

之前发生过几次,不知道什么原因。 今天一直用着好好的,打开一个csdn连接,显示404,博文被删除了,于是就用百度快照打开试试,百度快照打开显示的排版很乱也没找到有用信息。 后面再浏览CSDN博客就排版错乱,显示一个大大二维码图片。 尝试删除IE缓存无效,使用谷歌浏览是好的。 基本锁定就是搜狗缓存导致的,于是找如何删除搜狗缓存   清除后恢复正常

UniApp实现漂亮的音乐歌词滚动播放效果

在现代的音乐播放应用中,歌词的展示和滚动播放已经成为了一个非常常见的功能。今天,我们将通过UniApp来实现一个漂亮的歌词滚动播放功能。我们将使用UniApp提供的组件和API来完成这个任务。 页面结构 在页面的模板部分,我们需要创建一个音频播放器和歌词展示区域。使用<scroll-view>组件来实现歌词的滚动效果。 <template><view class="audio-co

828华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台

华为云征文|基于华为云Flexus云服务器X实例部搭建Halo博客平台 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Halo介绍2.1 Halo 简介2.2 Halo 特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买华为云Flexus云服务器X实例4.

缓存的常见问题 以及解决博客文章

1.jedispool 连 redis 高并发卡死  (子非鱼yy) https://blog.csdn.net/ztx114/article/details/78291734 2. Redis安装及主从配置 https://blog.csdn.net/ztx114/article/details/78320193 3.Spring中使用RedisTemplate操作Redis(sprin

QT项目实战之音乐播放器2.0版本

该版本相较于1.0版本最主要的不同在于连接数据库实现类似于歌曲收藏和取消收藏的功能。 详细情况看我的这篇文章http://t.csdnimg.cn/WS5s8。 效果展示 VSMyMusicShow2.0 define.h UseMySQL.h   musicInfo.h   VSMyMusicPlayer.h

C# 无法删除 Winform的PictureBox正在展示的图片

最近用C#的前端项目,写了PictureBox展示并上传图片。想删除掉已经展示和上传的图片,提示资源正在使用中不能删除。 查了一些原因,总结原因是PictureBox控件占用着图片资源,不允许删除。 从PictureBox展示图片入手,可以采用以下两个解决办法: 1:使用Bitmap类转接图片资源 Image bmp = new Bitmap(img); this.twoPictureBo

《黑神话:悟空》专题合集MOD/修改器/壁纸/音乐/CG剧情

《黑神话:悟空》专题合集」 链接:https://pan.quark.cn/s/d67857f4e308 包含内容: 《黑神话:悟空》MOD合集 《黑神话:悟空》修改器(风灵月影) 《黑神话:悟空》壁纸合集 《黑神话:悟空》3小时CG完整剧情合集 4K120帧最高画质!国语 简中字幕 附:4K 结尾动画合集 ​​​国语 简中字幕 《黑神话:悟空》主题曲 《黑神话

[置顶] IT牛人博客

团队技术博客 淘宝UED淘宝用户体验团队淘宝核心系统淘宝核心系统团队博客阿里巴巴数据库团队专注数据库管理开发运维淘宝通用产品专注JAVA技术淘宝QA致力于做测试的行业标准淘宝搜索技术关注技术 关注搜索量子恒道专注大数据统计百度搜索研发关注搜索相关技术EMC中国研究院关注于云计算和大数据贰号楼肆层阿里巴巴平台技术部阿里数据平台阿里巴巴数据平台百度技术分享交流百度的互联网技术编码者说腾讯滴技术团队腾