已知:
1.
if SaveDialog.Execute then
WaveStream.SaveToFile(SaveDialog.FileName);
//以上两句成功把WaveStream保存为一个wav文件。2.
With mp3enc1 do //调用这个三方控件
begin
Enabled:=true;
SampleRate:=44100;
BitRate :=64;
Open(‘f:\aa.wav’,c:\bb.mp3') ; //保存为新的mp3文件
Encode;
end;
//以上利用三方的Tmp3enc控件省去编码的麻烦,把wav文件成功转为bb.mp3文件。希望:
根据以上两个条件,怎样通过Tsavedialog控件根据用户选择的保存类型(savedialog1.filter:='wavFile(*.wav)|*.wav|mp3File(*mp3)|*.mp3')可分别存为wav文件或mp3文件?另外在保存成mp3文件时不想再通过已经保存的磁盘文件进行转换,而是直接转换。
1.
if SaveDialog.Execute then
WaveStream.SaveToFile(SaveDialog.FileName);
//以上两句成功把WaveStream保存为一个wav文件。2.
With mp3enc1 do //调用这个三方控件
begin
Enabled:=true;
SampleRate:=44100;
BitRate :=64;
Open(‘f:\aa.wav’,c:\bb.mp3') ; //保存为新的mp3文件
Encode;
end;
//以上利用三方的Tmp3enc控件省去编码的麻烦,把wav文件成功转为bb.mp3文件。希望:
根据以上两个条件,怎样通过Tsavedialog控件根据用户选择的保存类型(savedialog1.filter:='wavFile(*.wav)|*.wav|mp3File(*mp3)|*.mp3')可分别存为wav文件或mp3文件?另外在保存成mp3文件时不想再通过已经保存的磁盘文件进行转换,而是直接转换。
解决方案 »
- 获取局域网在线主机列表
- 已知进程名(如winrar),如何获得进程句柄?? 如何等待指定进程结束后,再运行下面程序??
- 请问有谁做过可以有背景图片的Label控件?
- IdFTPServer在有客户连接的情况下,如何中断服务关闭服务器?
- 问一个很本质的问题,为什么PASCAL不能编写操作系统,而C能够
- delphi怎么判断sql server数据库的服务启动
- 使用哪个函数来取得某个字符特定长度的重复字符串?
- timer的值单位是什么?
- 我想画一段立体的圆弧,是不是用一条条细线画出来?,给点提示也有分
- 怎样带路径的列出win2000下面运行的进程?(一定要带路径哟,要不就没有技术含量了)
- 现在算算学delphi快一年了,还是皮毛
- DElPHI 中为什么EDIT控件不能接收CtrL+V键
begin
i := SaveDialog1.FilterIndex;
case i of
1:
begin ShowMessage(IntToStr(i));
//wav
end;
2:
begin
//mp3
end;
end;
end;
begin
i := SaveDialog1.FilterIndex;
case i of
1:
begin
WaveStream.SaveToFile(SaveDialog.FileName);
end;
2:
begin
//mp3,具体这里怎么处理?
end;
end;
end;
begin
i := SaveDialog1.FilterIndex;
case i of
1:
begin
WaveStream.SaveToFile(SaveDialog.FileName);
end;
2:
begin
With mp3enc1 do //调用这个三方控件
begin
Enabled:=true;
SampleRate:=44100;
BitRate :=64;
Open(‘f:\aa.wav’, SaveDialog.FileName) ; //保存为新的mp3文件
Encode;
end;
end;
end;
end;‘f:\aa.wav’可以定义为变量。
var
i:integer;
sName:string;//添加这个变量
begin
if savedialog.Execute then
begin
i:= savedialog.FilterIndex ;
case i of
1:
begin
WaveStream.SaveToFile(SaveDialog.FileName);
end ;
2:
begin //存mp3格式
WaveStream.SaveToFile(sname);
With mp3enc1 do
begin
Enabled:=true;
SampleRate:=44100;
BitRate :=64;
Open(sName,savedialog.fileName ) ;
Encode;
end;
end;
end;
end;
end;
出现异常“cannot create file""系统找不到指定的路径”。
begin //存mp3格式
sName:=extractfilepath(application.ExeName)+'temp.mp3';//尝试添加这一句
WaveStream.SaveToFile(sname);
With mp3enc1 do
begin
Enabled:=true;
SampleRate:=44100;
BitRate :=64;
Open(sName,savedialog.fileName ) ;
Encode;
end;//出个EOleException,"can't determine my Window-Handle'。
高人们,原谅我太菜,完全业余学delphi……
begin
SaveDialog.Filter :='wavFile(*.wav)|*.wav|mp3file(*.mp3)|*.mp3|AllFile(*.*)|*.*';
SaveDialog.FilterIndex :=2; savedialog.Execute; //打开保存对话框
if savedialog.FileName ='' then exit; if ExtractFileExt(SaveDialog.filename) ='.wav' then
begin
WaveStream.SaveToFile(SaveDialog.FileName); //存为wav格式
end
else if ExtractFileExt(SaveDialog.filename)='.mp3' then
begin //存mp3格式
try WaveStream.SaveToFile('temp.wav'); //保存为临时文件
With mp3enc1 do //调用这个三方控件
begin
Enabled:=true;
SampleRate:=44100;
BitRate :=64;
Open('temp.wav',savedialog.fileName ) ; //保存为新的mp3文件
Encode;
end
except
begin
deletefile('temp.wav'); //删除临时文件
exit;
end;
end;
end;
end;
应该用 try ...
begin
try ... except
//需要的错误处理
end;
end
finaly
if 存在临时文件,则 deletefile('temp.wav');
end;