[Gambas-user] Supped up the WebAudio.class

Bruce Steers bsteers4 at gmail.com
Thu Jul 28 14:48:17 CEST 2022


On Thu, 28 Jul 2022 at 10:41, Benoit Minisini <
benoit.minisini at gambas-basic.org> wrote:

> Le 28/07/2022 à 11:33, Bruce Steers a écrit :
> >
> >
> > On Thu, 28 Jul 2022 at 09:41, Benoit Minisini
> > <benoit.minisini at gambas-basic.org
> > <mailto:benoit.minisini at gambas-basic.org>> wrote:
> >
> >     Le 28/07/2022 à 10:28, Benoit Minisini a écrit :
> >      > Le 28/07/2022 à 01:23, Bruce Steers a écrit :
> >      >>
> >      >>   How about a hidden event and use it for passing the data and
> >     firing
> >      >> required event?
> >      >>
> >      >
> >      > Nope.
> >      >
> >      > You must send the 'Position' property from the browser to the
> >     server by
> >      > using:
> >      >
> >      >      gw.update(<id>, '<property>', <value>);
> >      >
> >      > Where <id> is the id of the control, <property> the name of the
> >      > property, and <value> its value.
> >      >
> >      > Then you handle that message on the server in the
> '_UpdateProperty'
> >      > hidden method of the control.
> >      >
> >      > Look at the source code of 'WebTextBox' to see how the 'Text'
> >     property
> >      > is updated when the text changes on the browser.
> >      >
> >      > Once you have updated the property, you can raise the 'Position'
> >     event.
> >      >
> >      > Regards,
> >      >
> >
> >     Note that you have a WebControl '_GetUpdateJS()' method that
> generates
> >     for you the HTML code that calls 'gw.update' when a specific DOM
> event
> >     is triggered.
> >
> >     See again WebTextBox '_Render()' method for an example.
> >
> >
> > Thanks Ben, I've implemented the gw.update() + _UpdateProperty() method
> > and it's sooo much better,
> > the page objects were flickering during play before but now it's looking
> > nice and clean, i guess for the above mentioned refreshing reasons
> >
> > Also now i can get rid of the Observer as no longer needed.
> >
> > Many thanks for the pointers :)
> > Am currently rebuilding and checking out gb.media MediaPlayer for
> > guidance :)
> >
> > Respects
> > BruceS
> >
>
> When a property of a control changes, you usually must refresh it by
> calling the _Refresh() method.
>
> You can avoid a full refresh of the control to speed up things by using
> custom javascript code instead. Look at the SetText() method of the
> WebTextBox control to see an example.
>
> Another point: you must not catch an event on the browser side if you
> don't implement the event handler on the server side.
>
> To detect that, use the 'Object.CanRaise()' method. As usual, look at
> the '_Render' method of WebTextBox for an example.
>


Right, have modified (i hope to standard)

[GB.WEB.GUI]

   - NEW: WebAudio.AutoPlay, Auto play audio on loading.
   - NEW: WebAudio.Sources for alternative items.
   - NEW: WebAudio_Ready() event fires when audio has loaded.
   - NEW: WebAudio_Position() event fires as audio position changes during
   play.
   - NEW: WebAudio_End() event fires when a track finishes
   - NEW: WebAudio_Pause() event triggers when audio pauses.
   - NEW: Property WebAudio.Duration gets song length. (Also
   WebAudio.Length as a synonym)
   - NEW: Property WebAudio.Position, get or set song position. (Also
   WebAudio.Pos as a synonym)
   - NEW: Property Paused gets or sets paused state.
   - OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so
   audio can un-pause.
   - OPT: Clean up code and add inline wiki help in WebAudio.class

Put up a merge request as a Draft:
I think I addressed all the issues. Let me know if any thing is wrong.
Many thanks
BruceS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20220728/abfbe2aa/attachment.htm>


More information about the User mailing list