菜鸟问题:关于利用MediaPlayer控件和OpenDialog对话框实现多个文件播放
附上书上的代码和自己添加的一些代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
MPlayer, ExtCtrls, Buttons, ComCtrls, StdCtrls, CheckLst;
type
TForm1 = class(TForm)
Panel1: TPanel;//视频显示区域
MediaPlayer1: TMediaPlayer;//隐藏的媒体播放器
OpenDialog1: TOpenDialog;//打开文件对话框
PlayButton: TSpeedButton;//播放按钮
PauseButton: TSpeedButton;//暂停按钮
StopButton: TSpeedButton;//停止按钮
PrevButton: TSpeedButton;//第一首歌按钮
NextButton: TSpeedButton;//最后一首歌按钮
PrevStepButton: TSpeedButton;//向前跳进
NextStepButton: TSpeedButton;//向后跳进
StepLeftButton: TSpeedButton;//上一首歌按钮
StepRightButton: TSpeedButton;//下一首歌按钮
AddButton: TSpeedButton;//添加按钮
DeleteButton: TSpeedButton;//删除按钮
EjectButton: TSpeedButton;
CloseButton: TSpeedButton;//关闭按钮
StatusBar1: TStatusBar;//窗口状态栏
ListBox1: TListBox;
Timer1: TTimer;
Label1: TLabel;
CheckListBox1: TCheckListBox;
procedure CloseButtonClick(Sender: TObject);
procedure EjectButtonClick(Sender: TObject);
procedure PlayButtonClick(Sender: TObject);
procedure PauseButtonClick(Sender: TObject);
procedure StopButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure PrevButtonClick(Sender: TObject);
procedure StepLeftButtonClick(Sender: TObject);
procedure StepRightButtonClick(Sender: TObject);
procedure NextButtonClick(Sender: TObject);
private
{ Private declarations }
PauseStatus:Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type
TTMSFRec=record
Tracks:byte;
Minutes:byte;
Seconds:byte;
Frame:byte;
end;
var
mpPosition:longInt;
I:integer;
procedure TForm1.CloseButtonClick(Sender: TObject);
begin
close;
end;
procedure TForm1.EjectButtonClick(Sender: TObject);
begin
if OpenDialog1.Execute then
with MediaPlayer1 do
begin
FileName:=OpenDialog1.FileName;
with OpenDialog1.Files do
for I := 0 to Count - 1 do
begin
ListBox1.Items.Add(Strings[I]);
end;
Open();
DisplayRect:=Rect(0,0,Panel1.Width,Panel1.Height);
Notify:=True;
end;
end;
procedure TForm1.PlayButtonClick(Sender: TObject);
begin
PlayButton.Enabled:=False;
StatusBar1.Panels[2].Text:='播放';
Mediaplayer1.Play;
PauseButton.Enabled:=True;
StopButton.Enabled:=True;
PrevButton.Enabled:=True;
NextButton.Enabled:=True;
PrevStepButton.Enabled:=True;
NextStepButton.Enabled:=True;
StepLeftButton.Enabled:=True;
StepRightButton.Enabled:=True;
end;
procedure TForm1.PauseButtonClick(Sender: TObject);
begin
if PauseStatus then
begin
MediaPlayer1.Resume;
PauseStatus:=False;
StatusBar1.Panels[2].Text:='播放';
end
else
begin
MediaPlayer1.Pause;
PauseStatus:=True;
StatusBar1.Panels[2].Text:='暂停';
end;
PlayButton.Enabled:=True;
StopButton.Enabled:=True;
PrevButton.Enabled:=True;
NextButton.Enabled:=True;
PrevStepButton.Enabled:=True;
NextStepButton.Enabled:=True;
EjectButton.Enabled:=True;
end;
procedure TForm1.StopButtonClick(Sender: TObject);
begin
Form1.StopButton.Enabled:=False;
Form1.PauseButton.Enabled:=False;
MediaPlayer1.Stop;
MediaPlayer1.Rewind;
StatusBar1.Panels[2].Text:='停止';
Form1.PlayButton.Enabled:=True;
Form1.PrevButton.Enabled:=True;
Form1.PrevStepButton.Enabled:=False;
Form1.StepLeftButton.Enabled:=False;
Form1.EjectButton.Enabled:=True;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer1.Stop;
MediaPlayer1.Close;
end;
procedure TForm1.PrevButtonClick(Sender: TObject);
begin
MediaPlayer1.Stop;
MediaPlayer1.Rewind;
Form1.PlayButton.Enabled:=False;
PauseStatus:=False;
MediaPlayer1.Play;
Form1.StopButton.Enabled:=True;
Form1.PauseButton.Enabled:=True;
end;
procedure TForm1.StepLeftButtonClick(Sender: TObject);
begin
MediaPlayer1.Previous;
Form1.PlayButton.Enabled:=False;
PauseStatus:=False;
MediaPlayer1.Play;
end;
procedure TForm1.StepRightButtonClick(Sender: TObject);
begin
MediaPlayer1.Next;
Form1.PlayButton.Enabled:=False;
PauseStatus:=False;
MediaPlayer1.Play;
Form1.StopButton.Enabled:=True;
Form1.PauseButton.Enabled:=True;
Form1.PrevButton.Enabled:=True;
Form1.PrevStepButton.Enabled:=True;
Form1.StepLeftButton.Enabled:=True;
end;
procedure TForm1.NextButtonClick(Sender: TObject);
begin
MediaPlayer1.StartPos:=mpPosition;
Form1.PlayButton.Enabled:=False;
PauseStatus:=False;
MediaPlayer1.Play;
Form1.StopButton.Enabled:=True;
Form1.PauseButton.Enabled:=True;
Form1.PrevButton.Enabled:=True;
Form1.PrevStepButton.Enabled:=True;
Form1.StepLeftButton.Enabled:=True;
end;
end.
现在的问题是可以在ListBox里面添加歌曲名字
但是无法实现每首歌的播放
因为每次播放就只能播放所选的第一首歌
还有就是按钮事件我没有编写完
先把这个问题提出来让高手帮我解决一下
谢谢~!!!!
相关推荐
论文复现基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化(Simulink仿真实现)
内容概要:本文针对“基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化”这一主题,开展Simulink仿真实现与技术复现研究。通过构建全桥LLC谐振变换器的详细仿真模型,深入探讨在不同负载工况(如轻载、重载、待机与运行模式切换)下,如何结合变频控制(FM)与移相控制(PSM)的协同策略,优化系统动态响应的平稳性与效率。研究重点在于设计合理的控制逻辑,解决模式切换过程中可能出现的电压电流冲击问题,提升系统的稳定性和电能质量。文中系统阐述了控制策略的设计原理、关键参数的整定方法,并通过仿真结果验证了该协同控制方案在抑制瞬态扰动、实现无缝切换方面的有效性,完整复现了高水平学术论文中的核心技术路线,为电力电子变换器的先进控制提供了可复现的实践范例。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事开关电源、新能源变流器开发的工程师,尤其适合具备一定Simulink仿真经验与电力电子拓扑分析能力的专业人士; 使用场景及目标:①深入理解全桥LLC变换器在多模式运行下的变频与移相协同控制机理;②掌握在Simulink中对复杂谐振变换器进行建模、控制算法实现与仿真验证的全流程方法;③为学术论文写作、科研项目申报或高性能电源产品的工程开发提供可靠的技术参考与仿真基础; 阅读建议:建议结合所提供的Simulink模型文件与技术文档进行同步实践,重点关注变频与移相控制的切换逻辑、参数配合关系及过渡过程的动态特性,可通过调整负载条件观察系统的响应变化,以深化对模式切换平滑性实现机制的理解。
高校技术转移办公室人员如何高效完成科技成果全周期管理?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
可视化原型素材ppt格式
可视化原型素材ppt格式
氢氟醚:绿色高效的氟化解决方案.docx
氢氟醚:绿色高效的氟化解决方案.docx
2026最新广西省行政区划矢量图层-省市县乡镇四级行政区划数据下载
2026最新广西省行政区划矢量图层数据,包含省、市、县、乡镇四级行政区划数据,wgs84坐标


