如何在Delphi里使用TMediaPlayer控件获取一个MP3文件的准确长度

我尝试了用TMediaPlayer的Length属性来获取,其timeformat设为milliseconds和tfHMS、tfMSF这些都试过了,换算以后时间和准确时间差很多(准确时间应该是2分29秒,我换算出来都是25分多),文件是MP3文件,CBR编码,比特率为128KB/s。如果用TMediaplayer不行,请指点应该如何实现。

   Mp3size:=MediaPlayer1.Length div 1000;
   minutesMax:=Trunc(Mp3size/60);  //分
   SecondMax:= Mp3size mod 60;     //秒

 length 获取的是毫秒。

追问

谢谢回答,这个办法我试过,不过不是所有的MP3文件都有效,测试文件是
http://down.51voa.com/201310/se-canada-alice-munro-wins--nobel-prize-literature-25oct13.mp3

不管怎么改mediaplayer的timeformat属性,最后得到的Length都是文件大小(字节数)。

追答

我下载的测试图。


没用设置任何属性,直接把MediaPlayer控件丢在界面上。

追问

嗯,你用天天静听打开这个文件看一下,总长度不是9分钟,是2分29秒。

追答

你那里肯定有问题,我用千千静听打开也是9分钟

迅雷、快播、暴风 打开都是9分钟。

温馨提示:内容为网友见解,仅供参考
第1个回答  2024-03-25
注意MP3文件的格式,看一下比特率是不是标准的32,64,96,128,192,224,256,320。如果不是用转换软件转换一下,转换后的文件都能准确获取时间长度。

如何在Delphi里使用TMediaPlayer控件获取一个MP3文件的准确长度
Mp3size:=MediaPlayer1.Length div 1000; minutesMax:=Trunc(Mp3size\/60); \/\/分 SecondMax:= Mp3size mod 60; \/\/秒 length 获取的是毫秒。

Delphi 求mp3文件的持续时间
mediaplayer1.FileName :='f:\\mudan.mp3';mediaplayer1.Open ;label1.Caption :=inttostr(mediaplayer1.Length );\/\/播放长度 end;procedure TForm1.Button1Click(Sender: TObject);begin mediaplayer1.Play ;\/\/播放 end;8 吧代码贴出来,别人才好帮助你呀,这种小儿科的问题无须保密。

delphi中MediaPlayer控件怎么用
Mediaplayer1.FileName :=ExtractFilePath(Application.ExeName)+'1.mp3'; 设置MediaPlayer文件名,使用ExtractFilePath(Application.ExeName)来返回当前目录加文件名 MediaPlayer1.Open ; 打开文件 MediaPlayer1.Play ;播放文件 播放AVI文件建议和openDialog一起使用,比较方便,和openDialog一起用的例子:if (MediaPlay...

Delphi中MediaPlayer控件的使用
Mediaplayer1.FileName :=ExtractFilePath(Application.ExeName)+'1.mp3';设置MediaPlayer文件名,使用ExtractFilePath(Application.ExeName)来返回当前目录加文件名 MediaPlayer1.Open ; 打开文件 MediaPlayer1.Play ;播放文件 播放AVI文件建议和openDialog一起使用,比较方便,和openDialog一起用的例子:if ...

Delphi中WindowsMediaPlayer控件的使用方法
procedure TForm1.OpenLocalClick(Sender: TObject);\/\/打开本地文件 {var X:String; } begin wmp.controls.stop ;opend.Options:=[ofAllowMultiSelect];\/\/允许多选 opend.FilterIndex :=8;opend.Filter :='MidFile(*.mid)|*.mid|mp3File(*.mp3)|*.mp3|wmaFile(*.wma)|*.wma|FlvFile...

delphi MediaPlayer循环播放MP3所有音乐文件问题?
MediaPlayer用得不多, 只知道这种办法, . 假如你已有一个ListBox1并已经装载好全部MP3的完整路径信息了, 可以加一个TIMER1, 在 TIMER1的事件里写代码跟踪播放器的模式, 一停止即播放下一首歌.procedure TForm1.Timer1Timer(Sender: TObject);begin if MediaPlayer1.Mode=mpStopped then begin ...

delphi中如何播放一个声音文件??急用,谢谢~~~
添加 TMediaPlayer控件,稍作更改就可以了。例:if OpenDialog1.Execute then MediaPlayer1.FileName:=OpenDialog1.FileName;MediaPlayer1.Open;MediaPlayer1.Play;

如何用delphi编写音乐播放器
一、使用Delphi自带的MediaPlayer控件。1.在窗体里添加MediaPlayer1控件.2.在窗体创建处(TForm1.FormCreate)添加如下代码即可播放 MediaPlayer1.FileName:='<需要播放的MP3文件>';MediaPlayer1.Open;二、使用Bass.dll函数库(在www.un4seen.com里下载)。简单例子:uses Bass;BASS_Init(-1, 44100, 0, ...

DELPHI 编程如何播放音乐
使用 delphi 自带的 MediaPlayer 控件,可以播放常见的 wav \/ mp3 等格式的音乐文件,使用步骤如下:1.在窗体里添加MediaPlayer1控件。2. 以下代码为播放:MediaPlayer1.FileName:='<需要播放的MP3文件>';MediaPlayer1.Open;以下是该控件的一些相关方法:(1)AutoButtonSet方法 该方法能够指定媒体播放...

delphi怎么用mediaplayer播放资源?
第一步:建立一个rc文件.例如:my.rc,内容如下:mymusic wave music.wav 其中mymusic为资源名称,wave为资源类型,music.wav为一个存在的wav文件名.第二步:编译这个文件.>BRCC32 my.rc BRCC32.exe在...\/borland\/delphi5\/bin\/目录下,编译后生成一个资源文件my.res 第三步:加到程序中去.在{$R *...

相似回答