RVCamViewer 是 RVMedia 输出视频的对象,它提供了一个 OnPaint 事件,我们可以在其中控制要呈现给用户的内容。
下面的例子,我就在画面的右上角呈现了已经录制的时间,其中用到的 RollupTime 函数,请到 QString.pas 里找。
procedure TfrmVideoRecord.RVCamView1Paint(Sender: TObject; VideoFrame: TBitmap;
ACanvas: TCanvas; var CanDrawFrame: Boolean);
var
S: String;
ARecordedTime: Cardinal;
R: TRect;
begin
R := RVCamView1.FrameRect;
ACanvas.StretchDraw(R, VideoFrame);
CanDrawFrame := False;
if FUsedTime <> 0 then
begin
ARecordedTime := GetTickCount - FUsedTime;
if ARecordedTime >= 1000 then
begin
S := '已录制时长:' + RollupTime(ARecordedTime div 1000);
ACanvas.Brush.Style := bsClear;
ACanvas.TextRect(R, S, [tfRight]);
end;
end;
end;
本文转载于波哥的QDAC