• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

c#叫号小程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

写个叫号的小demo

长相如下

代码如下

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.IO;
 7 using System.Linq;
 8 using System.Media;
 9 using System.Text;
10 using System.Threading;
11 using System.Windows.Forms;
12 using NAudio.Wave;
13 
14 namespace VoiceDemo
15 {
16     public partial class Form1 : Form
17     {
18         public Form1()
19         {
20             InitializeComponent();
21         }
22 
23         private void button1_Click(object sender, EventArgs e)
24         {
25             string[] lstMp3s = Directory.GetFiles(Application.StartupPath + "\\mp3", "*.mp3");
26             Dictionary<string, string> lstDicMp3 = new Dictionary<string, string>();
27             for (int i = 0; i < lstMp3s.Length; i++)
28             {
29                 lstDicMp3.Add(Path.GetFileNameWithoutExtension(lstMp3s[i]), lstMp3s[i]);
30             }
31             lstDicMp3 = lstDicMp3.OrderByDescending(p => p.Key.Length).ToDictionary(p => p.Key, o => o.Value);
32 
33             string strText = textBox1.Text;
34             List<string> lst = new List<string>();
35             GetPlayList(lstDicMp3, strText, ref lst);
36             foreach (var item in lst)
37             {
38                 using (var ms = File.OpenRead(lstDicMp3[item]))
39                 using (var rdr = new Mp3FileReader(ms))
40                 using (var wavStream = WaveFormatConversionStream.CreatePcmStream(rdr))
41                 using (var baStream = new BlockAlignReductionStream(wavStream))
42                 using (var waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
43                 {
44                     waveOut.Init(baStream);
45                     waveOut.Play();
46                     while (waveOut.PlaybackState == PlaybackState.Playing)
47                     {
48                         Thread.Sleep(10);
49                     }
50                 }
51             }
52         }
53 
54         private void GetPlayList(Dictionary<string, string> lstDicMp3, string strText, ref  List<string> lst)
55         {
56             foreach (var item in lstDicMp3)
57             {
58                 if (strText.StartsWith(item.Key))
59                 {
60                     lst.Add(item.Key);
61                     strText = strText.Remove(0, item.Key.Length);
62                     break;
63                 }
64             }
65             if (strText.Length > 0)
66                 GetPlayList(lstDicMp3, strText, ref lst);
67         }
68     }
69 }
View Code

 

demo地址

https://pan.baidu.com/s/1eSiy98m


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序-表单验证插件WxValidate使用发布时间:2022-07-18
下一篇:
微信小程序-自定义slider组件样式发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap