{"id":5861,"date":"2025-02-25T19:21:15","date_gmt":"2025-02-25T10:21:15","guid":{"rendered":"https:\/\/blog.criware.com\/?p=5861"},"modified":"2025-08-06T17:33:10","modified_gmt":"2025-08-06T08:33:10","slug":"video-player-with-seek-bar","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/","title":{"rendered":"Video player with seek bar"},"content":{"rendered":"<p>In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay.\u00a0 For instance, in a mystery game, it could offer a way to examine videos for clues to solve mysteries. Similarly, in a horror game, the player could investigate security camera footage.<\/p>\n<p>\nUnfortunately, the standard VideoPlayer of Unity, although it provides general-purpose playback features, does not support the most efficient compression formats available or frame-by-frame control.<\/p>\n<div class=\"2col\" style=\"display:flex; border: 4px solid #8ba9d9; padding: 20px; border-radius: 10px; margin-bottom:30px;\">\n<div class=\"left\" style=\"width: 350px;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/\u753b\u50cf1.png\" alt=\"\" width=\"331\" height=\"274\" class=\"alignnone size-full wp-image-5863\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/\u753b\u50cf1.png 331w, https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/\u753b\u50cf1-300x248.png 300w\" sizes=\"auto, (max-width: 331px) 100vw, 331px\" \/>\n<\/div>\n<div class=\"right\" style=\"flex: 1;\">\n<p>\nWhen advanced video manipulation is required, CRI Sofdec is an ideal solution. Its Unity-optimized video playback library, CriMana, offers advanced playback controls and optimizations for game development, such as:<\/p>\n<ul>\n<li style=\"font-size: 14px;\">Precise frame-by-frame control (<strong>frameNo<\/strong>)<\/li>\n<li style=\"font-size: 14px;\">Stop control when seeking (<strong>StopForSeek())<\/strong><\/li>\n<li style=\"font-size: 14px;\">Dedicated enumeration for state management (<strong>Player.Status<\/strong>)<\/li>\n<li style=\"font-size: 14px;\">Memory and game performance optimizations<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>In this post, we showcase a simple video player with a seek bar. It can be found in the official SDK:<br \/>\n<strong>\\SDK\\unity\\samples\\UnityProject\\Assets\\CriAssetSamples\\Scenes\\crimana\\basic\\Scene_05_Seek.unity<\/strong><\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 30px;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-5861-1\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/Sofdec_Timeline.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/Sofdec_Timeline.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/Sofdec_Timeline.mp4<\/a><\/video><\/div>\n<\/div>\n<p>Below is a part of the <strong>MovieSeekBar.cs<\/strong> script used in the game scene and that relates to the video playback function.<\/p>\n<pre style=\"width: 94%; margin-bottom: 0px; padding-bottom: 40px;\"><code class=\"hljs php\">\r\nprivate void OnGUI() {\r\n  if (movie==null) {\r\n    return;\r\n  }\r\n\r\n  Scene_00_GUI.BeginGui(\"01\/SampleMain_Seek\");\r\n\r\n  \/* Set UI skin. *\/\r\n  GUI.skin=Scene_00_SampleList.uiSkin;\r\n\r\n  if (<b style=\"background-color: #bfe0ef;\"> movie.player.status<\/b>==Player.Status.Playing || <b style=\"background-color: #bfe0ef;\"> movie.player.status<\/b>==Player.Status.PlayEnd) {\r\n    totalFrameCnt=<b style=\"background-color: #bfe0ef;\">movie.player.movieInfo.totalFrames<\/b>;\r\n\r\n    seekFrameNo=(int)Mathf.Clamp(Scene_00_GUI.HorizontalSlider(seekBarRect, seekFrameNo, 0, totalFrameCnt - 1), 0, totalFrameCnt - 1);\r\n    GUI.enabled=false;\r\n\r\n      {\r\n      Scene_00_GUI.HorizontalSlider(playbackBarRect,\r\n        (movie.player.frameInfo !=null) ? <b style=\"background-color: #bfe0ef;\"> movie.player.frameInfo.frameNo<\/b> % totalFrameCnt : 0,\r\n        0, totalFrameCnt - 1);\r\n    }\r\n\r\n    GUI.enabled=true;\r\n    var oldFrameNo=seekFrameNo;\r\n    seekFrameNo=(int)Scene_00_GUI.HorizontalSliderButton(seekButtonRect, seekFrameNo, 0, totalFrameCnt - 1, totalFrameCnt \/ 20);\r\n\r\n    if (GUI.changed || seekFrameNo !=oldFrameNo) {\r\n      \/* Stop the playback. (Seeking is not available during playback.)  *\/\r\n      movie.player.<b style=\"background-color: #bfe0ef;\">StopForSeek()<\/b>;\r\n      isSeeking=true;\r\n    }\r\n  }\r\n\r\n  else {\r\n    GUI.enabled=false;\r\n    Scene_00_GUI.HorizontalSlider(playbackBarRect, 0, 0, totalFrameCnt - 1);\r\n    GUI.enabled=true;\r\n    Scene_00_GUI.HorizontalSlider(seekBarRect, seekFrameNo, 0, totalFrameCnt - 1);\r\n    Scene_00_GUI.HorizontalSliderButton(seekButtonRect, seekFrameNo, 0, totalFrameCnt - 1, totalFrameCnt \/ 20);\r\n  }\r\n\r\n  Scene_00_GUI.EndGui();\r\n}\r\n\r\nprivate void Update() {\r\n  if (movie==null) {\r\n    return;\r\n  }\r\n\r\n  if (isSeeking && movie.player.status==Player.Status.Stop) {\r\n    \/* Seek the movie and start the playback.  *\/\r\n    <b style=\"background-color: #bfe0ef;\">movie.player. SetSeekPosition(seekFrameNo)<\/b>;\r\n    <b style=\"background-color: #bfe0ef;\">movie.player.Start<\/b>();\r\n    isSeeking=false;\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>The CriMana API in the sample code is straightforward to use, allowing you to control videos with simple commands\/properties. Let\u2019s describe the different elements used.<\/p>\n<ul>\n<li style=\"font-size: 14px;\"><strong>movie.player.status<\/strong>: property indicating the playback status<\/li>\n<li style=\"font-size: 14px;\"><strong>movie.player.movieInfo.totalFrames<\/strong>: total number of frames in the video<\/li>\n<li style=\"font-size: 14px;\"><strong>movie.player.frameInfo.frameNo<\/strong>: current frame number<\/li>\n<li style=\"font-size: 14px;\"><strong>movie.player.StopForSeek()<\/strong>: function to stop the seek playback<\/li>\n<li style=\"font-size: 14px;\"><strong>movie.player.SetSeekPosition(int frameNo)<\/strong>: function to set the seek position<\/li>\n<li style=\"font-size: 14px;\"><strong>movie.player.Start()<\/strong>: function to start the video playback<\/li>\n<li style=\"font-size: 14px;\"><strong>Player.Status<\/strong>: enumeration of the various playback statuses<\/li>\n<\/ul>\n<p>In addition to its many other features, Sofdec offers advanced control on the video playback, making it possible to even build gameplay around it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a game, having a video player with a seek bar can be very useful, for instance to review game<\/p>\n","protected":false},"author":2,"featured_media":5881,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[6,7,23],"tags":[],"class_list":["post-5861","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sofdec","category-tutorials","category-unity"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"criware\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\n\t\t<!-- Google tag (gtag.js) --> <script async src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=G-3KHVJQ0K75\"><\/script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-3KHVJQ0K75'); <\/script>\n\t\t<meta property=\"og:locale\" content=\"en_GB\" \/>\n\t\t<meta property=\"og:site_name\" content=\"CRI Middleware Blog - Unleash creativity, boost productivity.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Video player with seek bar - CRI Middleware Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-02-25T10:21:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-08-06T08:33:10+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Video player with seek bar - CRI Middleware Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#blogposting\",\"name\":\"Video player with seek bar - CRI Middleware Blog\",\"headline\":\"Video player with seek bar\",\"author\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/author\\\/crich2_admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Blog-Picture-20250225-Sofdec_VideoPlayerWithSeekBar.png\",\"width\":800,\"height\":445},\"datePublished\":\"2025-02-25T19:21:15+09:00\",\"dateModified\":\"2025-08-06T17:33:10+09:00\",\"inLanguage\":\"en-GB\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#webpage\"},\"articleSection\":\"Sofdec, Tutorials, Unity\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.criware.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/category\\\/sofdec\\\/#listItem\",\"name\":\"Sofdec\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/category\\\/sofdec\\\/#listItem\",\"position\":2,\"name\":\"Sofdec\",\"item\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/category\\\/sofdec\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#listItem\",\"name\":\"Video player with seek bar\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#listItem\",\"position\":3,\"name\":\"Video player with seek bar\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/category\\\/sofdec\\\/#listItem\",\"name\":\"Sofdec\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/#organization\",\"name\":\"CRI Middleware Blog\",\"description\":\"Unleash creativity, boost productivity.\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/CRI-Blog_Title-banner_03.png\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#organizationLogo\",\"width\":262,\"height\":81},\"image\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/author\\\/crich2_admin\\\/#author\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/author\\\/crich2_admin\\\/\",\"name\":\"criware\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#webpage\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/\",\"name\":\"Video player with seek bar - CRI Middleware Blog\",\"description\":\"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve\",\"inLanguage\":\"en-GB\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/author\\\/crich2_admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/author\\\/crich2_admin\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Blog-Picture-20250225-Sofdec_VideoPlayerWithSeekBar.png\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#mainImage\",\"width\":800,\"height\":445},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/index.php\\\/2025\\\/02\\\/25\\\/video-player-with-seek-bar\\\/#mainImage\"},\"datePublished\":\"2025-02-25T19:21:15+09:00\",\"dateModified\":\"2025-08-06T17:33:10+09:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.criware.com\\\/#website\",\"url\":\"https:\\\/\\\/blog.criware.com\\\/\",\"name\":\"CRI Middleware Blog\",\"description\":\"Unleash creativity, boost productivity.\",\"inLanguage\":\"en-GB\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.criware.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Video player with seek bar - CRI Middleware Blog","description":"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve","canonical_url":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":"&lt;!-- Google tag (gtag.js) --&gt; &lt;script async src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=G-3KHVJQ0K75\"&gt;&lt;\/script&gt; &lt;script&gt; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-3KHVJQ0K75'); &lt;\/script&gt;"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#blogposting","name":"Video player with seek bar - CRI Middleware Blog","headline":"Video player with seek bar","author":{"@id":"https:\/\/blog.criware.com\/index.php\/author\/crich2_admin\/#author"},"publisher":{"@id":"https:\/\/blog.criware.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/Blog-Picture-20250225-Sofdec_VideoPlayerWithSeekBar.png","width":800,"height":445},"datePublished":"2025-02-25T19:21:15+09:00","dateModified":"2025-08-06T17:33:10+09:00","inLanguage":"en-GB","mainEntityOfPage":{"@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#webpage"},"isPartOf":{"@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#webpage"},"articleSection":"Sofdec, Tutorials, Unity"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/blog.criware.com#listItem","position":1,"name":"Home","item":"https:\/\/blog.criware.com","nextItem":{"@type":"ListItem","@id":"https:\/\/blog.criware.com\/index.php\/category\/sofdec\/#listItem","name":"Sofdec"}},{"@type":"ListItem","@id":"https:\/\/blog.criware.com\/index.php\/category\/sofdec\/#listItem","position":2,"name":"Sofdec","item":"https:\/\/blog.criware.com\/index.php\/category\/sofdec\/","nextItem":{"@type":"ListItem","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#listItem","name":"Video player with seek bar"},"previousItem":{"@type":"ListItem","@id":"https:\/\/blog.criware.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#listItem","position":3,"name":"Video player with seek bar","previousItem":{"@type":"ListItem","@id":"https:\/\/blog.criware.com\/index.php\/category\/sofdec\/#listItem","name":"Sofdec"}}]},{"@type":"Organization","@id":"https:\/\/blog.criware.com\/#organization","name":"CRI Middleware Blog","description":"Unleash creativity, boost productivity.","url":"https:\/\/blog.criware.com\/","logo":{"@type":"ImageObject","url":"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#organizationLogo","width":262,"height":81},"image":{"@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/blog.criware.com\/index.php\/author\/crich2_admin\/#author","url":"https:\/\/blog.criware.com\/index.php\/author\/crich2_admin\/","name":"criware"},{"@type":"WebPage","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#webpage","url":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/","name":"Video player with seek bar - CRI Middleware Blog","description":"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve","inLanguage":"en-GB","isPartOf":{"@id":"https:\/\/blog.criware.com\/#website"},"breadcrumb":{"@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#breadcrumblist"},"author":{"@id":"https:\/\/blog.criware.com\/index.php\/author\/crich2_admin\/#author"},"creator":{"@id":"https:\/\/blog.criware.com\/index.php\/author\/crich2_admin\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/blog.criware.com\/wp-content\/uploads\/2025\/02\/Blog-Picture-20250225-Sofdec_VideoPlayerWithSeekBar.png","@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#mainImage","width":800,"height":445},"primaryImageOfPage":{"@id":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/#mainImage"},"datePublished":"2025-02-25T19:21:15+09:00","dateModified":"2025-08-06T17:33:10+09:00"},{"@type":"WebSite","@id":"https:\/\/blog.criware.com\/#website","url":"https:\/\/blog.criware.com\/","name":"CRI Middleware Blog","description":"Unleash creativity, boost productivity.","inLanguage":"en-GB","publisher":{"@id":"https:\/\/blog.criware.com\/#organization"}}]},"og:locale":"en_GB","og:site_name":"CRI Middleware Blog - Unleash creativity, boost productivity.","og:type":"article","og:title":"Video player with seek bar - CRI Middleware Blog","og:description":"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve","og:url":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/","og:image":"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png","og:image:secure_url":"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png","article:published_time":"2025-02-25T10:21:15+00:00","article:modified_time":"2025-08-06T08:33:10+00:00","twitter:card":"summary_large_image","twitter:title":"Video player with seek bar - CRI Middleware Blog","twitter:description":"In a game, having a video player with a seek bar can be very useful, for instance to review game events after completing a level. The seek bar itself can be an integral part of the gameplay. For instance, in a mystery game, it could offer a way to examine videos for clues to solve","twitter:image":"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/08\/CRI-Blog_Title-banner_03.png"},"aioseo_meta_data":{"post_id":"5861","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2025-02-25 07:11:13","updated":"2025-08-06 08:38:01","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/blog.criware.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/blog.criware.com\/index.php\/category\/sofdec\/\" title=\"Sofdec\">Sofdec<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tVideo player with seek bar\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/blog.criware.com"},{"label":"Sofdec","link":"https:\/\/blog.criware.com\/index.php\/category\/sofdec\/"},{"label":"Video player with seek bar","link":"https:\/\/blog.criware.com\/index.php\/2025\/02\/25\/video-player-with-seek-bar\/"}],"_links":{"self":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/comments?post=5861"}],"version-history":[{"count":19,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5861\/revisions"}],"predecessor-version":[{"id":5883,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5861\/revisions\/5883"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5881"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=5861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=5861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=5861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}