PBToolboxAI AcheterBuyKaufenAcquistaComprarComprar

← Historique de tous les composants← History of every component← Versionsverlauf aller Komponenten← Cronologia di tutti i componenti← Historial de todos los componentes← Histórico de todos os componentes

L'historique des versions est publié en anglais.Version history is published in English.Der Versionsverlauf wird auf Englisch veröffentlicht.La cronologia delle versioni è pubblicata in inglese.El historial de versiones se publica en inglés.O histórico de versões é publicado em inglês.

Video player — version history

u_pbt_video · Introduced in 3.0

A video player with its own themed transport bar — local files streamed by the DLL or https URLs, subtitles, full screen, chapters, markers, playlist and frame capture. Introduced in 3.0.

4.0 — October 2026 #

New #

  • ue_failed now says why a film does not play, through a REASON_* constant (REASON_INSECURE, REASON_FORMAT, REASON_NOT_FOUND, REASON_NETWORK, REASON_DECODE…).
  • .mkv and .mov files are served and played when the engine decodes them; .avi, .wmv and .flv are refused by name (REASON_FORMAT).
  • Subtitles given by URL are downloaded by the component and shown (the server must allow CORS); a refusal raises the new ue_subtitles_failed event. of_remove_subtitles removes a language's track.
  • ib_pause_when_hidden (true by default): a film playing in a component that becomes hidden (another tab selected) pauses, raises ue_paused and waits for of_play.
  • ue_muted_changed(ab_on): the user muted or unmuted the sound (the bar's speaker, the M key), as volume and speed already had their event.
  • of_capture writes a real JPEG for a .jpg path, and the of_capture(as_path, al_max_width) overload scales the image down.
  • ue_buffering(ab_on) and of_is_buffering(): the film runs but waits for its data (a slow network, a jump far into a film from a URL); a ring in the theme's accent turns on the picture meanwhile.

Fixed #

  • ue_started is raised at each new playback (after of_stop or the end of the film, then of_play), no longer once per source; resuming a pause does not raise it.
  • Changing film (is_source, of_play(source)) takes away the old film's segment, subtitles, markers and chapters; set before any film, they wait for the first one; a playlist film keeps its own subtitles.
  • of_add_source while an is_source is set starts the list at once (unless the set film is playing: the list then follows it), and of_next no longer jumps to the first film.
  • of_play on a film in error raises ue_failed again instead of staying "playing" forever; of_reset unloads the film; ii_rate holds from one film to the next.
  • In full screen, Alt+Tab to another application brings that application to the front, and coming back to yours puts the film back on top; a modal box of your application (a MessageBox in ue_ended) now comes in front of the film and gets the keyboard.
  • Escape leaves full screen even when ib_enabled = false; full screen can always be left, even when the page no longer answers.
  • of_capture to a file that cannot be written leaves no truncated file; of_get_last_error then gives the reason for this failure (missing folder, empty path…), not an older error.
  • Paths longer than 260 characters work for subtitles and capture, as they already did for the film; a file://server/share/… address becomes a network path.
  • .srt subtitles in Windows-1252 or UTF-16 are read correctly; a chapter title containing | or a tab is no longer split in two by of_chapters.
  • Dragging the volume slider raises one ue_volume_changed when released, no longer one per pixel.
  • Space or Enter on a bar button presses that button instead of toggling play/pause; with an unknown or infinite duration (a live stream), End and the slider no longer jump back to the start.
  • A mono: / tint: poster no longer makes the picture ignore clicks; a marker at 0 ms, or at the start of a segment, fires; seeking past a segment while paused no longer raises ue_ended.
  • The speed shows the decimal separator of the display language (1,5× in French), and the scrub preview bubble is centred under the pointer in right-to-left layouts.
  • Enter or Esc pressed in the component, when it does not use them, goes back to the window: the PowerBuilder Default or Cancel CommandButton fires (the key was lost).
  • A disabled component (ib_enabled = false) leaves the Tab order; enabled again (or after of_reset), it takes its place back.
  • A language set by PBT_SetLanguage applies from the very next order given to the component: a text of an event raised by that order no longer comes in the old language.
  • With no language chosen by the application, the component announces English to screen readers (it announced French).
  • is_theme_style, is_theme_mode and il_theme_accent read back the style and mode shown and the component's own accent (-1 when it has none); an unknown or badly written value is ignored instead of leaving the component without a theme, and an axis left empty follows the application's theme.
  • The application accent (PBT_SetDefaultThemeAccent) survives a change of theme, is followed as long as the component has no accent of its own, and repaints everything derived from it (hover, pressed, selections); Windows high contrast is supported.

Behavior changes #

See the 3.0 → 4.0 migration guide, sections 11.3, 11.26 and 11.47.

  • Signature: ue_failed (string as_message, string as_reason) replaces ue_failed (string as_message); test as_reason rather than the message text.
  • An http:// source is refused at once (REASON_INSECURE): only https is played — download an intranet film first (n_pbt_restclient.of_download) and play it by its path.
  • of_add_subtitles twice for the same language returns -5 (also for a language containing / or |): call of_remove_subtitles first.
  • An action requested by your code raises the same event as the user's gesture: of_seek, of_step_frames and the chapter functions raise ue_seeked (and ue_chapter_changed); of_fullscreen, of_picture_in_picture, of_next / of_previous raise their event too. of_go_chapter beyond the chapter count returns -5.
  • A relative path given to of_capture is written in the folder where the application started; -5 for a path such as \x or C:x — give a full path.
  • "Component not created" returns -2 everywhere (the documentation said -1).
  • A film from a URL played while the workstation has no network shows "No network connection" and raises ue_failed with REASON_NETWORK (it said the file could not be found or played, with REASON_UNSUPPORTED).

3.0 — September 2026 #

New #

  • First release: a local file served as a stream by the DLL (a long film starts at once, seeking is immediate) or an https URL, with the component's own transport bar that follows the theme — play, seek, time, mute, volume, speed menu, subtitles button, full screen — and a keyboard.
  • Every gesture on the bar reaches your application: ue_seeked, ue_volume_changed, ue_rate_changed, ue_subtitles_changed, plus ue_started, ue_ended, ue_paused / ue_resumed, ue_stopped and ue_progress (once a second), all in milliseconds.
  • Live properties: is_source, ib_autoplay, ib_muted, ii_volume, ib_loop, ii_rate, is_stretch, ib_controls, is_poster (images and recoloured mono: / tint: icons), ib_enabled, ib_scrub_preview, ib_remember_position.
  • WebVTT subtitles and .srt files converted on the fly, several tracks by language (of_add_subtitles, is_subtitle_lang).
  • Full screen handled by the DLL (of_fullscreen), Picture-in-Picture, markers on the bar (of_add_marker, ue_marker_reached), a segment to play (of_play_range), frame stepping (of_step_frames, ii_fps), chapters (of_add_chapter, of_go_chapter…) and a playlist (of_add_source, of_next, of_previous), each film with its own subtitles.
  • of_capture: the current frame saved as an image file.
  • ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.
  • of_set_property, of_get_property and of_component_name: drive a property by its name (settings screen, saved configuration).