录音问题。。。
ApdTapiDevice 或者 ApdSapiPhone 怎样进行电话录音。。。
[解决办法]
就20分?
procedure TFrmMain.ApdTapiDeviceTapiWaveNotify(CP: TObject;
Msg: TWaveMessage);
var
TimeStr: string;
FileName: string;
begin
//决不能在case外做耗时的操作
case Msg of
waPlayOpen: LBSysInfo.Items.Add( 'wavnotify:播放开始 ');
waPlayDone:
begin
LBSysInfo.Items.Add( 'wavnotify:播放结束 ');
if CurrentState = csRecording then
begin
try
//等待波设备状态为wsIdle再开始录音
while ApdTapiDevice.WaveState <> wsIdle do
Application.ProcessMessages;
ApdTapiDevice.InterruptWave := True;
ApdTapiDevice.StartWaveRecord;
LBSysInfo.Items.Add( 'dtmf:录音成功 ');
except
LBSysInfo.Items.Add( 'dtmf:录音失败 ');
end;
end;
end;
waPlayClose: LBSysInfo.Items.Add( 'wavnotify:播放关闭 ');
waRecordOpen: LBSysInfo.Items.Add( 'wavnotify:录音开始 ');
waDataReady:
begin
LBSysInfo.Items.Add( 'wavnotify:数据准备 ');
TimeSeparator := '- ';
FileName := DateTimeToStr(Now) + '.wav ';
try
ApdTapiDevice.SaveWaveFile(ExtractFilePath(ParamStr(0)) + 'record\ ' +
FileName, True);
LBSysInfo.Items.Add( 'wavNotify:保存声音文件 ' + FileName);
except
LBSysInfo.Items.Add( 'wavnotify:保存声音文件失败 ');
end;
end;
waRecordClose:
begin
LBSysInfo.Items.Add( 'wavnotify:记录声音结束 ');
CurrentState := csWaiting;
ActionCancelExecute(nil);
Timer1.Enabled := True;
end;
end;
end;
http://www.programfan.com/article/showarticle.asp?id=2408