Page 1 of 1

[Demo] How to play AVI files in editor

Posted: Wed Oct 19, 2005 4:46 pm
by Sergey Tkachenko
aviplayer.zip
(3.7 KiB) Downloaded 1639 times
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

[+] History of updates
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
2018-Apr-8: compatibility with TRichView 17.3
[+] Old versions
http://www.trichview.com/support/files/aviplayer.zip - for TRichView 17.2 and older

Posted: Wed Oct 26, 2005 3:19 am
by shmp
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.

Posted: Wed Oct 26, 2005 3:31 pm
by Sergey Tkachenko
Sorry, I do not understand your question. Which kind of "avi procedures"?

Posted: Thu Oct 27, 2005 2:24 am
by Guest
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.

Posted: Thu Oct 27, 2005 1:43 pm
by Sergey Tkachenko
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;

Posted: Fri Oct 28, 2005 12:08 am
by shmp
Many thanks. I will do that.

Cheers :D

Posted: Fri Oct 28, 2005 8:54 am
by wvd_vegt
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.

Posted: Fri Oct 28, 2005 12:28 pm
by Sergey Tkachenko
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.

Posted: Sat Oct 29, 2005 2:58 am
by Guest
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.

Posted: Tue Dec 06, 2005 10:24 pm
by gacek999
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.

Posted: Sun Dec 11, 2005 7:38 pm
by Sergey Tkachenko
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.

Posted: Mon Feb 20, 2006 12:26 pm
by hruslan2000
How to save media source in RVF file with using TWindowsMediaPlayer?

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

Posted: Mon Feb 20, 2006 7:01 pm
by Sergey Tkachenko
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

Posted: Mon Feb 20, 2006 7:16 pm
by ziclope
Oh it´s great!

Exists any C++Builder demo ?

Regards

Posted: Sun Feb 26, 2006 12:50 pm
by Sergey Tkachenko
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.