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;
最终效果: