Skip to content

Dev5.4.0 external video3#39

Open
hiroshisuga wants to merge 94 commits intotest540_diffExtVideo3from
dev5.4.0_externalVideo3
Open

Dev5.4.0 external video3#39
hiroshisuga wants to merge 94 commits intotest540_diffExtVideo3from
dev5.4.0_externalVideo3

Conversation

@hiroshisuga
Copy link
Copy Markdown
Owner

@hiroshisuga hiroshisuga commented Sep 28, 2025

hiroshisuga/bigbluebutton#236 is necessary.

To show the debug log, you add "?debug=true" at the end of URL.

  • Thumbnail not shown -> accounts for the record_and_playback of BBB (hiroshisuga/bigbluebutton@9f3fd6e)
  • So far only for YouTube
  • Sometimes video does not stop when the video is stalled at event change (network issue?)
  • when the user gets back before the beginning of a video after it's already played once, the video does not start almost always. https://bbb1.pu-hiroshima.ac.jp/playback/presentation/2.3/81214bf90bf246a1b6bc81a2e7dda0d24a52e27e-1759589300011
  • what happens when the video starts from the middle (how it is recorded in the events.xml?)
  • when a video is played in twice speed, the video's time does not progress twice faster, resulting a severe time difference in the next event. (what about 1/2 speed?) -> PR 24050
  • relationship between handleOnReady, handleOnPlay, handleFirstPlay, and hasPlayedBefore unclear. What happens when swapping videos?
<?xml version="1.0" encoding="UTF-8"?>
<recording id="external_videos_events">
  <video start_timestamp="5.366" stop_timestamp="34.761" url="https://youtu.be/w05Q_aZKkFw">
    <event timestamp="13.172" rate="1.0" time="83.68992466585662" type="stop" playing="false"/>
    <event timestamp="14.067" rate="1.0" time="83.87994392752076" type="play" playing="true"/>
    <event timestamp="18.868" rate="1.0" time="133.10259295261238" type="stop" playing="false"/>
    <event timestamp="19.546" rate="1.0" time="133.10583792752075" type="play" playing="true"/>
    <event timestamp="23.049" rate="1.0" time="136.512921" type="stop" playing="false"/>
    <event timestamp="25.948" rate="1.0" time="136.77876492752074" type="play" playing="true"/>
    <event timestamp="32.29" rate="1.0" time="143.09781" type="stop" playing="false"/>
  </video>
</recording>
<?xml version="1.0" encoding="UTF-8"?>
<recording id="external_videos_events">
  <video start_timestamp="6.4" stop_timestamp="81.759" url="https://youtu.be/KEJGO1w-jog">
    <event timestamp="42.878" rate="2.0" time="36.239" type="playbackRateChange" playing="true"/>
    <event timestamp="42.891" rate="2.0" time="36.425" type="seek" playing="true"/>
    <event timestamp="58.087" rate="0.5" time="51.543" type="playbackRateChange" playing="true"/>
  </video>
</recording>

最終的にはループのダサい感じを解消すべき。
SInce 3.0 external video events are much more simplified than before. Sometimes there is only one tag with start and stop information, without any event tag at the inside.
Enlarge the inverval.
replace Component with PureComponent, which massively reduces render() call.
Delete unnecessary conditions. 
Previously the player always plays from the start of the video when the user rewinds the player after the video play finishes, and the last event is i.e., "playbackRateChange".
This fixes a problem that did not exist <bbb3, which allows a external_videos.xml without any events in the parent tag.
- if (index) is false when index is 0.
- '==' is replaced with '===' according to the npm compiler
- player.primary can be undefined (but probably not anymore). Just a fail safe.
instead of setInterval
index === -1 means either the timestamp has already passed this video, or there is no events (events is an empty array).
Here, it always means the latter. So this can catch the case where the user rewinds a one-stroke video before it ends.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant