英语已经逐渐成为一种世界性的语言,现代人学习英语的热情一浪高过一浪,所以,英语复读机十分的热销。但是,无论功能如何强大的复读机都有一个明显的缺陷——复读时间的固定的。如果复读时间太短,那么,当遇到长句子时就无能为力;如果复读的时间很长,使用时就免不了复读一些多余的部分,免不了进行快进(时下有些200秒的复读机具有快进功能),这与磁带的快进一样麻烦!所以,笔者想利用Delphi强大的媒体播放控件开发一个软件复读机。软件复读机最大的优点是,无论是句子的长短您都能自如地复读!绝对不需要倒带,也不需要快进。不仅如此,软件复读机还具有随机选读功能,这是一般复读机很不好实现的。

准备工作
  Delphi的媒体播放控件可已播放各种声音文件。我们可以根据自己的喜好把学习资料录制到计算机中,存成合适的格式。一般可存成wave文件或mp3文件。

复读机的开发
  开发软件复读机使用的主要是Delphi的媒体播放控件TMediaplayer。该控件在系统控制(system)页中。
  首先创建一个应用程序。设定主窗体的BorderStyle为BsDialog,禁止窗体的放大与缩小。设定KeyPreview为True,让主窗体处理键盘事件。
在主窗体上放置控件:

其中:
媒体播放器是程序的关键控件,用来实现声音的播放。
TrackBar用来指示当前的播放进度。
左边的TlistBox(SectionList)用来存放将要播放的声音文件名(学习资料)。
右边的两个TlistBox(StartList、StopList)用于记录复读过的句子。
‘增加’与‘删除’按钮用于维护学习资料。
TrackBar1用于显示播放进程。
Timer1用于动态显示播放进度。
OpenDialog1用于选择播放文件。

复读功能的实现:
① 程序中设置两个整数(StartPos, SstopPos)用于记录播放的起止点,并在初始化时将StopPos赋值为-1。
② 每次播放时记录当时的起始值:StartPos := Mediaplayer1.Position;
③ 程序中用空格键控制复读,回车键继续放音。首先,设置主窗体的KeyPreview为True,使主窗体能够截获按键消息。然后,重载OnKeyDown方法。代码如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

自由选读功能的实现:
  由于在复读时记录了所有复读过的句子的起止点,所以可以进行任意一句的复读。当用户用鼠标双击‘往昔岁月’中某一行时,可直接切换到该句的播放。代码如下:
procedure TRepeaterForm.ListDblClick(Sender: TObject);

begin

SID := (Sender as TListBox).ItemIndex; //取得当前行的索引
SID StopList.ItemIndex := SID; //将终点列表设置为
SID StartList.ItemIndex := SID; //将起始列表设置为
SID StartPos := StrToInt(StartList.Items[SID]);//取得开始位置

StopPos := StrToInt(StopList.Items[SID]);//取得终止位置

Mediaplayer1.StoP; //停止当前的播放
Mediaplayer1.StartPos := StartPos; //设置新的播放范围
Mediaplayer1.EndPos := StopPos;
Mediaplayer1.Play; //播放指定范围的声音

end;

学习资料的添加:
单击增加按钮用于增加学习资料。需要注意的是在增加新的文件之前应检索原有的列表,以防止重复。代码如下:
procedure TRepeaterForm.AddBtnClick(Sender: TObject);

var fn: string;
begin

 if OpenDialog1.Execute then
   begin
    fn := OpenDialog1.FileName;
    if SectionList.Items.IndexOf(fn)<0 then //先检索该文件,如果不存在                SectionList.Items.Add(fn); //加入到列表中

   end;

end;

学习资料的选择:
  通过重载OnClick方法实现。先取得单击时的索引,然后通过Items[索引]取得文件名。将文件名赋值给Mediaplayer的Filename属性,然后调用Open方法即可。(代码略)
  另外,在程序的初始化时要打开学习资料文件;程序退出时将学习资料存盘。这些功能都是通过TlistBox.Items.LoadFromFile和TlistBox.Items.SaveToFile实现的(代码略)。
  该程序在中文Windows98+Delphi5.0环境下调试通过。全部源代码可Mail作者索取。

用Delphi自制英语复读机相关推荐

  1. 英语复读机软件测试大乐,‎App Store 上的“点滴复读机 - 英语听力口语学习神器”...

    先说一下为什么收费? 1:点滴复读机是专业的软件复读机,专门为英语听力练习而设计,提供了超越传统复读机的功能体验,对您的英语听力口语学习会有很大的帮助: 2:会免费共享一些英语听力学习资源: 3:点滴 ...

  2. [软件分享]aboboo英语复读机 使用心得

    软件名称:aboboo www.aboboo.com 作用:英语复读,社区互动,丰富的材料,可以全方位锻炼听说能力. 技巧1:如何锻炼口语? 注册一个帐号,登陆后下载使用社区自带的课件,然后使用&qu ...

  3. 英语磁带与计算机磁带区别,小学英语教材配听力磁带 家长:谁还用复读机?...

    时间倒回十多年,大家听歌.听英语还是用磁带,复读机.录音机也是学生人手必备的学习用品.但在各种高端电子产品充斥的今天,再去找个录音机可能就非常困难了.这不?刚刚开学,就有小学一年级的家长被难倒了,学校 ...

  4. EnMp3Player 学习英语口语的好软件(MP3复读机)

      最好用--英语口语学习软件(MP3复读机) EnMp3Player 一.软件用途 轻松进行听力练习:MP3断句复读.同步字幕显示.屏幕取词翻译(解决生词问题). 软件适用人群范围:小学生.初中生. ...

  5. 多态、虚函数举例(人与复读机)

    描述 在下面的编辑器中的Begin-End之间补充代码,设计人类.英语学生类和复读机类三个类,具体要求如下:‪‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‫‫ 人类( Chi ...

  6. 复读机java群管脚本_JS让浏览器实现复读机的功能_js

    几年前,看到一台湾人写的一段程序(好像是<日语基础>),在网页上实现音视频与文字的同步播放(就是音视频播到哪部分,相应的文字就亮显,点击某一句话,播放器将从这句话开始播放.)当时觉得这个很 ...

  7. 新型复读机——微信语音

    英语学习中一直找不到合适的复读机: 1.市面上的复读机总是需要好多功能去操作,虽然有点精确,有的不精确,但每次操作都要点击鼠标. 2.除此之外,学习时,好多音频是电脑播放的,当自己跟读时,用电脑录音不 ...

  8. 头歌实训项目【人与复读机】

    #include <iostream> using namespace std;class Chinese {//人类的声明 public:virtual void greet();}; ...

  9. (原创)C# LRC复读机-1

    最近想恶补下英语,找了很多MP3播放软件,但是没有哪个能按照句子播放时间来播放声音的,想想自己学习过的WinForm,为什么不自己写一个程序呢?一个想法出现在脑海中,说干就干,花了一天时间,先研究了一 ...

最新文章

  1. c语言解析xml字符串_Python XML解析
  2. 刚发现Source Insight发布新版本了
  3. shell 中diff返回值_LINUX(中)
  4. 西交大计算机考博学术英语,2018年西安交通大学考博英语真题
  5. 中专计算机总结论文,中专计算机毕业论文...doc
  6. 基于持续集成的轻量级接口自动化测试
  7. 【译】ZFS最佳实践指南-Part2
  8. linux的rar,linux下rar的使用
  9. VIM总结之一:VIM编辑器常用命令详解
  10. spark sql之日期函数
  11. 颜色RGB 与 html 代码 对照表
  12. 微信小程序组件间传值
  13. 程序员需要知道的97件事情之 ------- 谋定而后动
  14. 三苯基三甲基硫酸酯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. 开源论坛框架调研总结
  16. 李白 三五七言·秋风词
  17. C++错误:C4996
  18. 文字下划线从中间往两头延伸动画
  19. 诺基亚808手机软件java的那款_4100万像素之外有什么? 诺基亚808评测
  20. 面向切面编程的简单应用

热门文章

  1. 工作、求职需要记住的英文缩写,offer讨论避免尴尬
  2. Early Convolutions Help Transformers See Better
  3. Russia Proposes First Multinational Cryptocurrency
  4. 今日头条组图下载本地,并存入MongoDB
  5. 1024分辨率《X战警:第一战》BD中英双字无水印
  6. Java 虚拟机:Java 内存区域及对象,java 反射面试
  7. 存储管理系统课程设计——C语言实现请求页式存储管理模拟系统
  8. PEG/蛋白Prote/抗体antibody/PAA/SiO2功能化 修饰NaY(Gd/Lu/Nd):Yb,Tm@NaYF4:Yb,Nd上转换纳米颗粒
  9. Git搭建私有服务器
  10. 异军突起!当贝投影加冕中国家用投影仪增长之王!