TCCSuperPlayerView: Thành Phần Hỗ trợ Phát Video Cho Ứng Dụng Delphi

Hôm nay, ChinaCock đã ra mắt phiên bản mới với khả năng hỗ trợ phát video hoàn hảo! Phiên bản này giới thiệu điều khiển mới TCCSuperPlayerView để hỗ trợ chức năng phát video.

Đây là một thành phần trực quan, chỉ cần kéo thả vào Form, điều chỉnh kích thước và vị trí, sau đó có thể gọi phương thức Play để phát tệp video từ vị trí được chỉ định:

procedure TMainForm.PlayButtonClick(Sender: TObject);
begin
  // VideoPlayer1.Play('Tiêu đề tùy chỉnh','http://example.com/video.mp4');
  VideoPlayer1.<strong>Play</strong>('Phát theo yêu cầu - Tiêu đề tùy chỉnh',
    'http://1252463788.vod2.myqcloud.com/95576ef5vodtransgzp1252463788/68e3febf4564972819220421305/v.f30.mp4');
end;

Trong hầu hết các trường hợp, chúng ta phát các tài nguyên video từ máy chủ video. Tuy nhiên, phương thức Play cũng hỗ trợ video cục bộ, phù hợp hơn với các tình huống tải xuống tệp video và phát ngoại tuyến.

Về các định dạng video được hỗ trợ, bạn hoàn toàn có thể yên tâm. Các định dạng phổ biến trên thị trường cơ bản đều được hỗ trợ như: mp4, flv, HLS (m3u8), tức là hỗ trợ phát video theo yêu cầu các định dạng hls, mp4 và video trực tiếp các giao thức RTMP, http-flv, hls.

Thành phần này không chỉ hỗ trợ video đã ghi mà còn hỗ trợ phát trực tiếp, phù hợp với các xu hướng phát trực tiếp hiện nay. Nếu bạn có nền tảng phát trực tiếp, hoàn toàn có thể sử dụng thành phần này để triển khai trình phát ở phía khách hàng.

procedure TMainForm.LiveStreamButtonClick(Sender: TObject);
begin
  VideoPlayer1.Play
    ('http://5815.liveplay.myqcloud.com/live/5815_89aad37e06ff11e892905cb9018cf0d4.flv');
end;

Nói một cách chuyên nghiệp hơn, phát theo yêu cầu là phát các video đã ghi trước, còn phát trực tiếp là luồng từ máy chủ phát và khách hàng nhận luồng theo thời gian thực. Trình phát này hỗ trợ cả hai! Ngoài ra, điều khiển phát còn hỗ trợ các sự kiện. Để đơn giản, tôi sẽ đưa đoạn mã từ Demo:

procedure TMainForm.VideoPlayerPlayEvent(ASender: TObject;
  APlayEvent: TVideoPlayer_PlayEvent);
var
  EventInfo: String;
begin
  case APlayEvent of
    CONNECT_SUCCESS:
      EventInfo := 'Đã kết nối đến máy chủ';
    RTMP_STREAM_BEGIN:
      EventInfo := 'Đã kết nối đến máy chủ, bắt đầu nhận luồng';
    FIRST_FRAME_RECEIVED:
      EventInfo := 'Nhận được khung dữ liệu đầu tiên';
    PLAY_START:
      EventInfo := 'Bắt đầu phát video';
    PLAY_PROGRESS:
      EventInfo := 'Sự kiện tiến độ phát';
    PLAY_COMPLETE:
      EventInfo := 'Hoàn thành phát';
    PLAY_BUFFERING:
      EventInfo := 'Trình phát video đang ở trạng thái đệm, sau khi đệm hoàn thành sẽ có sự kiện PLAY_START';
    VIDEO_DECODER_START:
      EventInfo := 'Trình giải mã video bắt đầu khởi động';
    RESOLUTION_CHANGED:
      EventInfo := 'Độ phân giải video thay đổi';
    STREAM_SWITCH_SUCCESS:
      EventInfo := 'Chuyển đổi luồng trực tiếp hoàn tất';
  end;
  if EventInfo <> '' then
  begin
    self.EventLog.Lines.Add(FormatDateTime('[yyyy-MM-dd HH:mm:ss]', now) +
      EventInfo);
  end;
end;

Tác giả đã đơn giản hóa tối đa việc sử dụng điều khiển này, chỉ cần thêm một tệp Jar:

Chỉ cần một tệp duy nhất tencent-liteavsdk.jar!

Sau đó, phát hành một số tệp SO:

Như hình trên, hiển thị các tệp SO cần phát hành, rất tối giản. Cần đề cập rằng tác giả đã rất vất vả để đơn giản hóa các tệp phát hành, nhiều tệp được tạo ra trong thời gian chạy để đạt được hiệu quả như vậy.

Đối với người dùng, khi phát video, trình phát cung cấp các chức năng sau:

  1. Phát video trong cửa động nổi;

  2. Chụp màn hình

  3. Điều chỉnh âm lượng

  4. Điều chỉnh độ sáng

  5. Điều chỉnh tiến độ phát

  6. Chuyển đổi giữa chế độ toàn màn hình và cửa sổ

Tóm lại, tất cả các chức năng cần có của một trình phát chuyên nghiệp đều có sẵn!

Nếu bạn cũng muốn tích hợp phát video vào ứng dụng của mình, trình phát được triển khai bởi TCCSuperPlayerView là lựa chọn không thể bỏ qua. Đừng ngần ngại, hãy tham gia ChinaCock để trải nghiệm các thành phần chuyên cấp từ tác giả, không chỉ hỗ trợ video.

Thẻ: Delphi video-player TCCSuperPlayerView live-streaming multimedia

Đăng vào ngày 2 tháng 6 lúc 22:38