{"id":377047,"date":"2023-04-26T12:35:40","date_gmt":"2023-04-26T12:35:40","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=377047"},"modified":"2025-07-11T12:30:18","modified_gmt":"2025-07-11T12:30:18","slug":"audio-video-progress-bar-in-flutter","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/","title":{"rendered":"Audio Video Progress Bar\u00a0 In Flutter"},"content":{"rendered":"\n<p>In this blog, we learn about how to implement Audio Video Progress Bar&nbsp; In Flutter.<\/p>\n\n\n\n<p>We can use this widget to display the current progress of a music or video player. This widget is easier to link to a media player compared to the Flutter Slider widget. <\/p>\n\n\n\n<p>Moreover, it allows streaming media to display the buffered state.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Introduction<\/strong>:-<\/h3>\n\n\n\n<p>The video progress bar is a convenient tool that helps you keep track of where you stopped watching a video last time.<\/p>\n\n\n\n<p> When you exit a video without finishing it, a bar located under the video thumbnail displays the exact moment where you paused. The next time you play the video, it will start from where you left off.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implementation:-<\/h3>\n\n\n\n<p>First, we need to create a new Flutter project and add the following dependencies to the pubspec.yaml file.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dependencies:\n  flutter\n    sdk: flutter\naudio_video_progress_bar: ^1.0.1\n\nNow, run the command \"flutter pub get\" to add the dependencies.<\/pre>\n\n\n\n<p>Add the following package to your class.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">import &#039;package:audio_video_progress_bar\/audio_video_progress_bar.dart&#039;;<\/pre>\n\n\n\n<p>You may also check our&nbsp;<a href=\"https:\/\/mobikul.com\/flutter-app-development\/\">flutter app development<\/a> company page.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Create Progress Bar<\/strong> :-<\/h3>\n\n\n\n<p>To create progress bars for audio and video, you can use the ProgressBar widget.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">ProgressBar(\n  progress: Duration(milliseconds: 1000),\n  buffered: Duration(milliseconds: 2000),\n  total: Duration(milliseconds: 5000),\n  onSeek: (duration) {\n    print(&#039;User selected a new time: $duration&#039;);\n  },\n),<\/pre>\n\n\n\n<p>This is a static instance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Now create a progress bar with an audio url<\/strong>:-<\/h3>\n\n\n\n<p id=\"tw-source-rmn\">Add the following dependencies to the pubspec.yaml file.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">dependencies:\n  flutter\n    sdk: flutter\naudio_video_progress_bar: ^1.0.1\njust_audio: ^0.9.32<\/pre>\n\n\n\n<p>Add the following package to your class.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">import &#039;package:just_audio\/just_audio.dart&#039;;<\/pre>\n\n\n\n<p>Create a DurationState class and wrap it in a builder widget updated by audio or video player.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">class DurationState {\n  const DurationState({this.progress, this.buffered, this.total});\n  final Duration ? progress;\n  final Duration ?  buffered;\n  final Duration ? total;\n}\n...\nStreamBuilder&lt;DurationState&gt; _progressBar() {\n  return StreamBuilder&lt;DurationState&gt;(\n    stream: _durationState,\n    builder: (context, snapshot) {\n      final durationState = snapshot.data;\n      final progress = durationState?.progress ?? Duration.<em>zero<\/em>;\n      final buffered = durationState?.buffered ?? Duration.<em>zero<\/em>;\n      final total = durationState?.total ?? Duration.<em>zero<\/em>;\n      return ProgressBar(\n        progress: progress,\n        buffered: buffered,\n        total: total,\n        onSeek: (duration) {\n          _player.seek(duration);\n        },\n        onDragUpdate: (details) {\n          debugPrint('${details.timeStamp}, ${details.localPosition}');\n        },\n      );\n    },\n  );\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Create  Play Button:-<\/strong><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">StreamBuilder&lt;PlayerState&gt; _playButton() {\n    return StreamBuilder&lt;PlayerState&gt;(\n      stream: _player.playerStateStream,\n      builder: (context, snapshot) {\n        final playerState = snapshot.data;\n        final processingState = playerState?.processingState;\n        final playing = playerState?.playing;\n        if (processingState == ProcessingState.loading ||\n            processingState == ProcessingState.buffering) {\n          return Container(\n            margin: const EdgeInsets.all(8.0),\n            width: 32.0,\n            height: 32.0,\n            child: const CircularProgressIndicator(),\n          );\n        } else if (playing != true) {\n          return IconButton(\n            icon: const Icon(Icons.play_arrow),\n            iconSize: 32.0,\n            onPressed: _player.play,\n          );\n        } else if (processingState != ProcessingState.completed) {\n          return IconButton(\n            icon: const Icon(Icons.pause),\n            iconSize: 32.0,\n            onPressed: _player.pause,\n          );\n        } else {\n          return IconButton(\n            icon: const Icon(Icons.replay),\n            iconSize: 32.0,\n            onPressed: () =&gt; _player.seek(Duration.zero),\n          );\n        }\n      },\n    );\n  }<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">complete code:-<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\">import &#039;package:audio_video_progress_bar\/audio_video_progress_bar.dart&#039;;\nimport &#039;package:flutter\/material.dart&#039;;\nimport &#039;package:just_audio\/just_audio.dart&#039;;\nimport &#039;package:rxdart\/rxdart.dart&#039;;\n\nclass AudioVideoProgressBar extends StatefulWidget {\n  const AudioVideoProgressBar({Key? key}) : super(key: key);\n\n  @override\n  State&lt;AudioVideoProgressBar&gt; createState() =&gt; _AudioVideoProgressBarState();\n}\n\nclass _AudioVideoProgressBarState extends State&lt;AudioVideoProgressBar&gt; {\n   AudioPlayer player=AudioPlayer();\n   final url = &#039;https:\/\/www.soundhelix.com\/examples\/mp3\/SoundHelix-Song-2.mp3&#039;;\n   late Stream&lt;DurationState&gt; durationState;\n@override\nvoid initState() {\n  super.initState();\n  player = AudioPlayer();\n  durationState = Rx.combineLatest2&lt;Duration, PlaybackEvent, DurationState&gt;(\n      player.positionStream,\n      player.playbackEventStream,\n          (position, playbackEvent) =&gt; DurationState(\n        progress: position,\n        buffered: playbackEvent.bufferedPosition,\n        total: playbackEvent.duration,\n      ));\n  _init();\n}\n\n   Future&lt;void&gt; _init() async {\n     try {\n       await player.setUrl(url);\n     } catch (e) {\n       debugPrint(&#039;An error occurred $e&#039;);\n     }\n   }\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      debugShowCheckedModeBanner: false,\n      home: Scaffold(\n        appBar: AppBar(title: const Text(&quot;Audio Video Progress Bar&quot;),),\n        body: SafeArea(\n          child: Padding(\n            padding: const EdgeInsets.all(20.0),\n            child: Column(\n              children: &#091;\n                ProgressBar(\n                  progress: const Duration(milliseconds: 1000),\n                  buffered: const Duration(milliseconds: 2000),\n                  total: const Duration(milliseconds: 5000),\n                  onSeek: (duration) {\n                    print(&#039;User selected a new time: $duration&#039;);\n                  },\n                ),\n                const SizedBox(height: 20),\n                Container(\n                  child: _progressBar(),\n                ),\n                const SizedBox(height: 10),\n                _playButton(),\n              ],\n            ),\n          ),\n        ),\n      ),\n    );\n  }\n\n  StreamBuilder&lt;DurationState&gt; _progressBar() {\n    return StreamBuilder&lt;DurationState&gt;(\n      stream: durationState,\n      builder: (context, snapshot) {\n        final durationState = snapshot.data;\n        final progress = durationState?.progress ?? Duration.zero;\n        final buffered = durationState?.buffered ?? Duration.zero;\n        final total = durationState?.total ?? Duration.zero;\n        return ProgressBar(\n          progress: progress,\n          buffered: buffered,\n          total: total,\n          onSeek: (duration) {\n            player.seek(duration);\n          },\n          onDragUpdate: (details) {\n            debugPrint(&#039;${details.timeStamp}, ${details.localPosition}&#039;);\n          },\n        );\n      },\n    );\n  }\n\n  StreamBuilder&lt;PlayerState&gt; _playButton() {\n    return StreamBuilder&lt;PlayerState&gt;(\n      stream: player.playerStateStream,\n      builder: (context, snapshot) {\n        final playerState = snapshot.data;\n        final processingState = playerState?.processingState;\n        final playing = playerState?.playing;\n        if (processingState == ProcessingState.loading ||\n            processingState == ProcessingState.buffering) {\n          return Container(\n            margin: const EdgeInsets.all(8.0),\n            width: 32.0,\n            height: 32.0,\n            child: const CircularProgressIndicator(),\n          );\n        } else if (playing != true) {\n          return IconButton(\n            icon: const Icon(Icons.play_arrow),\n            iconSize: 32.0,\n            onPressed: player.play,\n          );\n        } else if (processingState != ProcessingState.completed) {\n          return IconButton(\n            icon: const Icon(Icons.pause),\n            iconSize: 32.0,\n            onPressed: player.pause,\n          );\n        } else {\n          return IconButton(\n            icon: const Icon(Icons.replay),\n            iconSize: 32.0,\n            onPressed: () =&gt; player.seek(Duration.zero),\n          );\n        }\n      },\n    );\n  }\n\n}\nclass DurationState {\n  const DurationState({this.progress, this.buffered, this.total});\n  final Duration ? progress;\n  final Duration ?  buffered;\n  final Duration ? total;\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Output:-<\/h3>\n\n\n\n<p>As shown in the video below, the progress bar moves when the audio plays and stops when it is paused.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"2340\" style=\"aspect-ratio: 1080 \/ 2340;\" width=\"1080\" controls src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/blog2-1.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Conclusion<\/strong>:-<\/h3>\n\n\n\n<p>We have completed the implementation of our topic.<\/p>\n\n\n\n<p>Check here for more interesting blogs &#8211;<a href=\"https:\/\/mobikul.com\/blog\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/mobikul.com\/blog\/<\/a>.<\/p>\n\n\n\n<p>After reading this blog, you should have a better understanding of how to implement an audio and video progress bar in Flutter.<\/p>\n\n\n\n<p>Flutter&#8217;s official website offers useful resources for exploring Audio, Video, and Progress bar.<\/p>\n\n\n\n<p>Webkul is a full\u2011stack <a href=\"https:\/\/webkul.com\/flutter-app-development-services\">Flutter app development company<\/a>, specializing in interactive and media\u2011rich mobile experiences, like their blog demo showing how to build a customizable audio\/video progress bar in Flutter.<\/p>\n\n\n\n<p>Thank you for taking the time to read this blog post\ud83d\ude42.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">References:-<\/h2>\n\n\n\n<p><a href=\"https:\/\/pub.dev\/packages\/flutter_credit_card.\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/pub.dev\/packages\/audio_video_progress_bar.<\/a><br><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog, we learn about how to implement Audio Video Progress Bar&nbsp; In Flutter. We can use this widget to display the current progress of a music or video player. This widget is easier to link to a media player compared to the Flutter Slider widget. Moreover, it allows streaming media to display the <a href=\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":516,"featured_media":377164,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[12989],"class_list":["post-377047","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-flutter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Audio Video Progress Bar\u00a0 In Flutter - Webkul Blog<\/title>\n<meta name=\"description\" content=\"In this blog we will implement that how to audio video progress bar in Flutter?.This feature is very useful and interactive.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Audio Video Progress Bar\u00a0 In Flutter - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"In this blog we will implement that how to audio video progress bar in Flutter?.This feature is very useful and interactive.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-26T12:35:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-11T12:30:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter-1200x675.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sakshi Rai\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sakshi Rai\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\"},\"author\":{\"name\":\"Sakshi Rai\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/494f4a6febbdb69ffe87f1b7cf0c46ba\"},\"headline\":\"Audio Video Progress Bar\u00a0 In Flutter\",\"datePublished\":\"2023-04-26T12:35:40+00:00\",\"dateModified\":\"2025-07-11T12:30:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\"},\"wordCount\":368,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png\",\"keywords\":[\"Flutter\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\",\"url\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\",\"name\":\"Audio Video Progress Bar\u00a0 In Flutter - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png\",\"datePublished\":\"2023-04-26T12:35:40+00:00\",\"dateModified\":\"2025-07-11T12:30:18+00:00\",\"description\":\"In this blog we will implement that how to audio video progress bar in Flutter?.This feature is very useful and interactive.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png\",\"width\":2240,\"height\":1260,\"caption\":\"Audio-Video-Progress-Bar-In-Flutter\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Audio Video Progress Bar\u00a0 In Flutter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/494f4a6febbdb69ffe87f1b7cf0c46ba\",\"name\":\"Sakshi Rai\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2c12c700382e736a7084229ae8cdda5a6d6ac963df9ecc509657e4b5926f7f8b?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2c12c700382e736a7084229ae8cdda5a6d6ac963df9ecc509657e4b5926f7f8b?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"caption\":\"Sakshi Rai\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/sakshirai-mk754\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Audio Video Progress Bar\u00a0 In Flutter - Webkul Blog","description":"In this blog we will implement that how to audio video progress bar in Flutter?.This feature is very useful and interactive.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/","og_locale":"en_US","og_type":"article","og_title":"Audio Video Progress Bar\u00a0 In Flutter - Webkul Blog","og_description":"In this blog we will implement that how to audio video progress bar in Flutter?.This feature is very useful and interactive.","og_url":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2023-04-26T12:35:40+00:00","article_modified_time":"2025-07-11T12:30:18+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter-1200x675.png","type":"image\/png"}],"author":"Sakshi Rai","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Sakshi Rai","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/"},"author":{"name":"Sakshi Rai","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/494f4a6febbdb69ffe87f1b7cf0c46ba"},"headline":"Audio Video Progress Bar\u00a0 In Flutter","datePublished":"2023-04-26T12:35:40+00:00","dateModified":"2025-07-11T12:30:18+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/"},"wordCount":368,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage"},"thumbnailUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png","keywords":["Flutter"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/","url":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/","name":"Audio Video Progress Bar\u00a0 In Flutter - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage"},"thumbnailUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png","datePublished":"2023-04-26T12:35:40+00:00","dateModified":"2025-07-11T12:30:18+00:00","description":"In this blog we will implement that how to audio video progress bar in Flutter?.This feature is very useful and interactive.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/04\/Audio-Video-Progress-Bar-In-Flutter.png","width":2240,"height":1260,"caption":"Audio-Video-Progress-Bar-In-Flutter"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/audio-video-progress-bar-in-flutter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Audio Video Progress Bar\u00a0 In Flutter"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/494f4a6febbdb69ffe87f1b7cf0c46ba","name":"Sakshi Rai","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2c12c700382e736a7084229ae8cdda5a6d6ac963df9ecc509657e4b5926f7f8b?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2c12c700382e736a7084229ae8cdda5a6d6ac963df9ecc509657e4b5926f7f8b?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","caption":"Sakshi Rai"},"url":"https:\/\/webkul.com\/blog\/author\/sakshirai-mk754\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/377047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/516"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=377047"}],"version-history":[{"count":28,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/377047\/revisions"}],"predecessor-version":[{"id":499032,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/377047\/revisions\/499032"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media\/377164"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=377047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=377047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=377047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}