客服小妹是如何泡到手的——C#定时提醒·语音录制·语音播放·文件转录Demo源码——倾情奉献!
一.需求提出
客服小妹跟我说,每天要统计新加好友数,得先记下昨天的数目,然后查看今天的数目,还要相减,打字,记录——好麻烦!
又说,客户多的时候,忙起这头忘了那头,文字记录备忘又太费劲!
我说,赐你一个软件!于是有了下面这个东西。
二.主要界面

三.主要功能简介
1 .可定时弹出主界面,输入今日好友数,计算出新加好友数,并将今日好友数存盘。
2.统计信息显示在界面上,并且写入word文件中以备查看,并自动拷贝至剪切板,方便复制。
3.可语音备忘,录制语音消息,并保存在文件夹中。
4.可下拉列表查看文件,并选中播放。
5.可将原始文件转录成MP3文件。
四.编码实现
1.好友统计功能相关实现
先设计两个属性,直接对应于两个文件,这样一来,既能以字段的风格来操作文件,又能将变量持久化到硬盘上,以保存状态。
public int TodayFriendsCount
{
get
{
if (!File.Exists("todayFriendsCount.dat"))
{
File.WriteAllBytes());
}
);
}
set { File.WriteAllBytes("todayFriendsCount.dat", BitConverter.GetBytes(value)); }
}
public bool IsHandled
{
get
{
if (!File.Exists("HandledSign.dat"))
{
File.WriteAllBytes("HandledSign.dat", BitConverter.GetBytes(false));
}
);
}
set
{
File.WriteAllBytes("HandledSign.dat", BitConverter.GetBytes(value));
this.toolStripLabel_isHandled.Text = this.IsHandled ? "今日已处理" : "今日未处理";
this.toolStripLabel_isHandled.ForeColor = this.IsHandled ? Color.Red : Color.Blue;
}
}
计算按钮事件处理方法
private void button1_Click(object sender, EventArgs e)
{
//已经处理过
if (this.IsHandled)
{
DialogResult dialogResult = MessageBox.Show("今日已经执行过,是否还要继续操作?", "提醒", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.No)
{
this.ReFocusInput();
return;
}
}
if (String.IsNullOrEmpty(this.textBox_todayCount.Text.Trim()))
{
MessageBox.Show("输入不能为空!");
this.textBox_todayCount.Focus();
return;
}
int todayFriendsCountNew = int.Parse(this.textBox_todayCount.Text.Trim());
int incremeFriendsCount = todayFriendsCountNew - this.TodayFriendsCount;
this.richTextBox_ShowNewCount.Text = string.Format("今日新加好友:{0} - {1} = {2}",
todayFriendsCountNew,
this.TodayFriendsCount,
incremeFriendsCount);
Clipboard.SetText(this.richTextBox_ShowNewCount.Text);
string text = string.Format("{0} {1}\r\n", DateTime.Now.ToShortDateString(), this.richTextBox_ShowNewCount.Text);
this.AppendFriendsDiary(text);
//重置基础参数
this.ReSetInitialParameter(todayFriendsCountNew, true);
//重聚焦输入框
this.ReFocusInput();
}
2.语音备忘功能相关实现
设计一个byte数组用于存放语音数据
];
采集发生时,将声音数据数组拼接到字段数组上。
void microphoneCapturer_AudioCaptured(byte[] data)
{
this.audioData = BufferJointer.Joint(this.audioData, data);
this.decibelDisplayer1.DisplayAudioData(data);
}
停止录制时写入文件
private void button_stop_Click(object sender, EventArgs e)
{
this.microphoneCapturer.Stop();//停止采集
this.originalFileManager.WriteFile(this.audioData);//写文件
this.LoadAduioFileList();
this.ShowWorkStatus(false);
}
播放选中文件
private void toolStripButton1_Click(object sender, EventArgs e)
{
if (this.ExamineSelectNull())
{
return;
}
this.audioPlayer.Play(this.originalFileManager.ReadFile(this.toolStripComboBox1.SelectedText));
}
转录为MP3文件
private void toolStripButton2_Click(object sender, EventArgs e)
{
if (this.ExamineSelectNull())
{
return;
}
this.MakeAudioFile();
DialogResult dialogResult = MessageBox.Show("转存成功,是否打开目录查看?", "提醒", MessageBoxButtons.YesNo);
if (dialogResult == System.Windows.Forms.DialogResult.Yes)
{
this.mP3FileManager.OpenDirectory();
}
}
五.源码下载
下载: 客服备忘系统(包含语音备忘功能、语音播放功能、并能将语音文件转录成MP3)
客服小妹是如何泡到手的——C#定时提醒·语音录制·语音播放·文件转录Demo源码——倾情奉献!的更多相关文章
- 用SignalR 2.0开发客服系统[系列1:实现群发通讯]
前言 交流群:195866844 先说一下我为什么会写这个博客吧,(首先说一下,我是一个小菜鸟,讲的不好请指导 - -,) 前段时间公司的项目涉及到在B/S上使用即时通讯,(其实就是做一个B/S的客 ...
- 用SignalR 2.0开发客服系统[系列2:实现聊天室]
前言 交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室 ...
- 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 真的很感谢大家的支持,今天发表系列3 ...
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- C#开发微信门户及应用(7)-微信多客服功能及开发集成
最近一直在弄微信的集成功能开发,发现微信给认证账户开通了一个多客服的功能,对于客户的咨询,可以切换至客服处理的方式,而且可以添加多个客服进行处理,这个在客户咨询比较多的时候,是一个不错的营销功能.微信 ...
- 使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)
近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有 ...
- 微信小程序客服消息使用指南
客服消息使用指南 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 功能介绍 用户可使用小程序客服消息功能,与小程序的客服人 ...
- wpf 客户端 添加qq客服咨询
使用qq推广 站点:http://shang.qq.com/v3/widget.html 复制里面的html代码: <a target=" src="http://wpa.q ...
随机推荐
- DDD CQRS架构和传统架构的优缺点比较
明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概 ...
- SQL Server常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...
- 有趣的 CSS 像素艺术
原文地址:https://css-tricks.com/fun-times-css-pixel-art/#article-header-id-4 译者:nzbin 友情提示:由于国内网络的原因,Cod ...
- .net 分布式架构之业务消息队列
开源QQ群: .net 开源基础服务 238543768 开源地址: http://git.oschina.net/chejiangyi/Dyd.BusinessMQ ## 业务消息队列 ##业务消 ...
- nodejs利用ajax实现网页无刷新上传图片
nodejs利用ajax实现网页无刷新上传图片 标签(空格分隔): nodejs 通常情况下上传图片是要通过提交form表单来实现的,但是这又不可避免的产生了网页转. 利用ajax技术和FormDat ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- hbase集群安装与部署
1.相关环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 hbase1.2.4 本篇文章仅涉及hbase集群的搭建,关于hadoop与zookeeper的相关部 ...
- closure
什么是闭包?百度的答案: 闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)."闭包&quo ...
- BZOJ 3238: [Ahoi2013]差异 [后缀数组 单调栈]
3238: [Ahoi2013]差异 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2326 Solved: 1054[Submit][Status ...