[Demo] How to play AVI files in editor

Demos, code samples. Only questions related to the existing topics are allowed here.
Post Reply
Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

[Demo] How to play AVI files in editor

Post by Sergey Tkachenko » Wed Oct 19, 2005 4:46 pm

http://www.trichview.com/support/files/aviplayer.zip

This demo shows:
- how to play AVI files in editor using TPanel and TMediaPlayer
- how to implement resizing of AVI players
- how to export documents containing AVI players to HTML
- how to allow saving and loading documents containing AVI players in RVF

Image

This demo does not support drag&drop of controls. See here for details:
http://www.trichview.com/forums/viewtopic.php?t=157

(2008-Dec-9: updated according to suggestions below:
- OnItemAction is used to reassign Display;
- hint with file name;
- Rewind button is shown instead of Stop)
Last edited by Sergey Tkachenko on Tue Dec 09, 2008 4:55 pm, edited 1 time in total.

shmp
Posts: 140
Joined: Sun Aug 28, 2005 10:19 am
Location: Sabah, Malaysia.
Contact:

Post by shmp » Wed Oct 26, 2005 3:19 am

Could something be done about this avi procedures? It doesn't seem to work within a table. I tried to figure out but its a very painstaking effort. Need someting less time-consuming.

Thanks in advance.

Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko » Wed Oct 26, 2005 3:31 pm

Sorry, I do not understand your question. Which kind of "avi procedures"?

Guest

Post by Guest » Thu Oct 27, 2005 2:24 am

Sorry for being very brief. Within a table, the resize caused an error. If clicked anywhere other then the panel itself (even outside the table), the resize-procedure is activated thus causing an error. Only when the actual resizing is preformed should the resize-procedure be activated. Could you please check this for me.

Thanks.

Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko » Thu Oct 27, 2005 1:43 pm

It looks like TMediaPlayer does not like changing Parent of its Display conntrol.
Use OnItemActionItem to reassign Display:

Code: Select all

procedure TForm1.RichViewEdit1ItemAction(Sender: TCustomRichView;
  ItemAction: TRVItemAction; Item: TCustomRVItemInfo; var Text: String;
  RVData: TCustomRVData);
var Panel, VideoPanel: TPanel;
    Player: TMediaPlayer;
begin
  if csDestroying in Sender.ComponentState then
    exit;
  if (ItemAction=rviaInserted) and (Item.StyleNo=rvsComponent) and
    (TRVControlItemInfo(Item).Control is TPanel) then begin
    Panel      := TRVControlItemInfo(Item).Control as TPanel;
    VideoPanel := Panel.Components[0] as TPanel;
    Player     := Panel.Components[1] as TMediaPlayer;
    Player.Display := VideoPanel;
  end;
end;

shmp
Posts: 140
Joined: Sun Aug 28, 2005 10:19 am
Location: Sabah, Malaysia.
Contact:

Post by shmp » Fri Oct 28, 2005 12:08 am

Many thanks. I will do that.

Cheers :D

wvd_vegt
Posts: 84
Joined: Tue Aug 30, 2005 7:39 am

Post by wvd_vegt » Fri Oct 28, 2005 8:54 am

Hi,

Not related to the problem but nice to add is the next line:

VideoPanel.Hint := Format('%s [%d x %d]', [ExtractFileName(Player.FileName), VideoPanel.Width, VideoPanel.Height]);

which will display a nice yellow hint when the mouse is over the videoplayer.

Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko » Fri Oct 28, 2005 12:28 pm

One more suggestion: I just noticed that the TMediaPlayer's Stop button does not reset the movie position to the beginning (so I do not understand what's the difference between Stop and Pause buttons), so hiding additional buttons may be undesirable.

Guest

Post by Guest » Sat Oct 29, 2005 2:58 am

For the player button (namely stop button), I have to reset the position using on notify event - this is one of the incomplete thing in TMediaPlayer. The event is available in the player itself.

gacek999
Posts: 7
Joined: Tue Dec 06, 2005 10:05 pm

Post by gacek999 » Tue Dec 06, 2005 10:24 pm

Can we have embedded Windows Media Player control
like TMediaPlayer ? TMediaPlayer also is build on Windows
control, but I want to see original buttons, trackbar, and so on.
We often see this embedded players on websites.

Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko » Sun Dec 11, 2005 7:38 pm

Create Windows Mediaplayer ActiveX: "Component | Import ActiveX Control", select "Windows Media Player (Version 1.0)", and install it. New control (TWindowsMediaPlayer) will be available in the Component Palette, the page "ActiveX".
Video file name can be specified in URL property. I did not try to insert it in TRichView, but I do not think that there will be problems. It even simpler than the example above, because the control includes both video screen and VCR buttons.

hruslan2000
Posts: 81
Joined: Mon Aug 29, 2005 5:00 am

Post by hruslan2000 » Mon Feb 20, 2006 12:26 pm

How to save media source in RVF file with using TWindowsMediaPlayer?

Media player is registered with RegisterClasses([TWindowsMediaPlayer]).

Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko » Mon Feb 20, 2006 7:01 pm

I think it can be done only by creating inherited component with new property, containing media data.
It's something that was done for the Flash ActiveX here:
http://www.trichview.com/forums/viewtopic.php?t=72

ziclope
Posts: 84
Joined: Wed Aug 31, 2005 10:28 am

Post by ziclope » Mon Feb 20, 2006 7:16 pm

Oh it´s great!

Exists any C++Builder demo ?

Regards

Sergey Tkachenko
Site Admin
Posts: 13572
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Post by Sergey Tkachenko » Sun Feb 26, 2006 12:50 pm

http://www.trichview.com/support/files/ ... ashCPP.zip
It has problems with the flash (see that topic), but may be it will work properly for media player.

Post Reply