如何实时地进行Mp3录音?(100分)

  • 主题发起人 主题发起人 intelligent113
  • 开始时间 开始时间
I

intelligent113

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,我遇到一个难题,希望知道的朋友帮帮忙,万分感激!

如何实时地进行Mp3录音? 我指的是对麦克风的输入进行录音,直接保存为Mp3格式。我知道如何录制为wave,但是如何录制为mp3呢?有什么控件可以使用呢?
小弟初学delphi,很多地方不明白,希望大家不吝赐教,非常感谢

Dear friends:
i have meat a problem which i cannot slove.
I want to use microphone to record ,and i know how record to file as
*.wav ,and i know how transform *.wav file to *.mp3 file,but i want to
record sound to mp3 file without the step of "*.wav file to *.mp3 file",i want to record it directly (or looks like directly).

please help!

thanks very very much!
 
MMTools中有你要的控件[:D]
 
太感谢qice您的指点,
您能否告诉我,那里可以下载mmtools?
我用的mmtools似乎不太完整。您能否将mmtools发给我:xiangji_yang@tom.com
能够告诉我具体的录音用的控件?应该是一个ACM控件吧?我自己的mmtools中好像没有
再次感谢您!
 
MMTools可以在 www.playicq.com 上下载,
我的MMTools在家呢,晚上发给你吧[:D]
 
非常感谢您的热心,我就在晚上恭候您给我发Email了!
 
非常冒昧的问,您可以告诉我具体用哪几个控件实现mp3的实时录音吗?感谢您!
 
您好,我已经大概摸索出来如何进行Mp3录音了,很感谢您的帮助。我还有最后一点小的问题:
如何在使用MMTools的TMMACM 和 TMMACMConverter的时候,如何直接指定TMMACMConverter.PWaveFormat?
以下代码是通过弹出选择窗口,让用户自己指定的。

if MMACM1.ACMPresent then

begin

if MMACM1.ChooseFormat(ACMConverter.PWaveFormat,'Select Format') then

begin

ACMConverter.PWaveFormat := MMACM1.PWaveFormat;
end;

end;


如果我要选择的格式是mp3 11025Hz ,16bit ,Mono,请问如何实现?
 
procedure TMainForm.btnStartClick(Sender: TObject);
var
wfx: TWaveformatEx;

begin

if MMACM1.ChooseFormat(nil,'Select Format') then

begin

// setup a source PCM format
pcmBuildWaveHeader(@wfx,16,1,22050);

// alloc a buffer for conversion
FSrcBuffer := GlobalAllocPtr(GPTR, 4096);

// setup our conversion instance
FPACMConvert := acmbegin
Convert(@wfx,MMACM1.PWaveFormat,
FSrcBuffer,4096,True);
if (FPACMConvert = nil) then

raise Exception.Create('Unable to convert to destination format');
 
您好,很抱歉我上个叙述不太准确。我的问题是
if MMACM1.ChooseFormat(nil,'Select Format') then
.....................
这句将出现一个系统的窗口,让选择格式属性等。而我们可以通过选择mp3格式,属性为
11025,Mono,16bit来得到我的录音目的。
然而,我的要求是,能否不出现那个选择格式属性的窗口。我在程序中直接确定格式为
11025,Mono,16bit,您给我的提示好像还是要将选择窗口显示。
请您帮助,再次表示感谢!
 
你试试:
procedure TMainForm.btnStartClick(Sender: TObject);
var
wfx: TWaveformatEx;
begin

// setup a source PCM format
pcmBuildWaveHeader(@wfx,16,1,22050);

// alloc a buffer for conversion
FSrcBuffer := GlobalAllocPtr(GPTR, 4096);

// setup our conversion instance
FPACMConvert := acmbegin
Convert(@wfx,MMACM1.PWaveFormat,
FSrcBuffer,4096,True);
if (FPACMConvert = nil) then

raise Exception.Create('Unable to convert to destination format');

// The destination buffer is allocated from acmbegin
Convert
FDstBuffer := FPACMConvert.lpDstBuffer;

{ create a destination file }
MMWaveFile1.Wave.CreateFile('C:/TEST.WAV',MMACM1.PWaveFormat);
end;

 
呵呵,问题已经得到了圆满的解决。是我们对PWaveFormatEx的理解的问题,
在您的帮助下,我已经解决了问题,非常高兴认识您!希望您日后能够多多帮助我这个
后辈!感谢
 
后退
顶部