Ticket #435 (closed enhancement: fixed)

Opened 13 months ago

Last modified 11 months ago

Force mid-roll to play if the user skips ahead on the timeline

Reported by: paul Owned by: paul
Priority: critical Milestone: OVA for Flowplayer (v1.0.1)
Component: OVA for Flowplayer Version: OVA for Flowplayer (trunk)
Keywords: Cc:
Forum thread:

Description

Force any skipped mid-rolls to play if the user skips through on the timeline.

Change History

comment:1 Changed 12 months ago by paul

Implemented in 1.1 RC1 Build 10, but there is a problem with seeking in Flowplayer 3.2.11:

Here's the issue:

  1. For some reason, Flowplayer doesn't consistently and correctly fire the onSeek and onBeforeSeek events.
  1. Here are some test results to demonstrate what I mean:

Test 1 - 60 second clip, user seeks to 33 seconds from 9 seconds on the timeline:

12:10:34 GMT+0100 Debuggable: >>> ON BEFORE SEEK event.info = 56.20967741935484, current time in clip = 9.404
12:10:34 GMT+0100 Debuggable: >>> ON BEFORE SEEK event.info = 33.725806451612904 current time in clip = 9.404
12:10:35 GMT+0100 Debuggable: >>> ON SEEK event.info = 33.725806451612904 current time in clip = 33.901

Notice in that debug trace that the "onBeforeSeek" is called twice when seeking. The first time it is called the event.info value is a strange number (56.209677... - nothing to do with the point in the timeline that I seeked to which is 33.72 seconds), but the second event is right - the event.info value is correct 33.72 and the current time is 9.4.

One instance of the onSeek event is right in this case, but now look at another test run - seeking to 34 seconds from 4 seconds on the timeline:

12:16:02 GMT+0100 Debuggable: >>> ON BEFORE SEEK event.info = 58.225806451612904, current time in clip = 4.282
12:16:02 GMT+0100 Debuggable: >>> ON BEFORE SEEK event.info = 34.935483870967744, current time in clip = 4.282

Once again the onBeforeSeek fired twice with the first firing being completely incorrect and the second correct, but what is worse in this case is that the onSeek didn't fire at all.

I'm having real difficulty with this - I can't rely on the seek events and the data in them..

comment:2 Changed 11 months ago by paul

  • Status changed from new to closed
  • Resolution set to fixed

Attempted (but probably unreliable) work around implemented in 1.1 RC1 Build 13.

onBeforeSeek records the position of the timeline on the first event, then when onSeek is received that value is used as the starting position + the current time to determine the mid-rolls skipped. The variable holding the first time position is reset onSeek.

Note: See TracTickets for help on using tickets.