{"id":993,"date":"2022-08-29T01:17:19","date_gmt":"2022-08-30T15:54:03","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/uncategorized\/android-media-player-song-featuring-seekbar\/"},"modified":"2025-07-18T14:49:37","modified_gmt":"2025-07-18T14:49:37","slug":"android-media-player-song-featuring-seekbar","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/","title":{"rendered":"Android Media Player Song Featuring SeekBar"},"content":{"rendered":"<p>In this guide, we will utilize the MediaPlayer class to create a simple Audio Player within our Android Application. We will incorporate a Play\/Stop functionality and provide the user with the ability to adjust the position of the song using a SeekBar.<\/p>\n<h2>One possible paraphrase for &#8220;Android MediaPlayer&#8221; is &#8220;Media player for Android devices.&#8221;<\/h2>\n<p>The MediaPlayer class is utilized for playing both Audio and Video files. We will primarily make use of the typical methods available in the MediaPlayer class.<\/p>\n<ul class=\"post-ul\">\n<li>start()<\/li>\n<li>stop()<\/li>\n<li>release() &#8211; To prevent memory leaks.<\/li>\n<li>seekTo(position) &#8211; This will be used with the SeekBar<\/li>\n<li>isPlaying() &#8211; Let\u2019s us know whether the song is being played or not.<\/li>\n<li>getDuration() &#8211; Is used to get the total duration. Using this we\u2019ll know the upper limit of our SeekBar. This function returns the duration in milli seconds<\/li>\n<li>setDataSource(FileDescriptor fd) &#8211; This is used to set the file to be played.<\/li>\n<li>setVolume(float leftVolume, float rightVolume) &#8211; This is used to set the volume level. The value is a float between 0 an 1.<\/li>\n<\/ul>\n<p>We will play an mp3 file retrieved from the Assets folder in our <a href=\"https:\/\/www.android.com\/\">Android<\/a> Studio Project.<\/p>\n<pre class=\"post-pre\"><code>AssetFileDescriptor descriptor = getAssets().openFd(\"filename\");\r\n                mediaPlayer.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());\r\n                descriptor.close();\r\n<\/code><\/pre>\n<p>To develop an Application capable of playing audio and allowing users to modify the position of the current song track, we must incorporate three components.<\/p>\n<ul class=\"post-ul\">\n<li>MediaPlayer<\/li>\n<li>SeekBar With Text &#8211; To show the current progress time besides the thumb.<\/li>\n<li>Runnable Thread &#8211; To update the Seekbar.<\/li>\n<\/ul>\n<h3>Structure of the project.<\/h3>\n<p>Include the subsequent dependency in your build.gradle file.<\/p>\n<pre class=\"post-pre\"><code>implementation 'com.android.support:design:28.0.0-alpha3'\r\n<\/code><\/pre>\n<h3>Write the following natively in a different way:<\/h3>\n<p>Piece of programming.<\/p>\n<p>Below is the code for the activity_main.xml file:<\/p>\n<pre class=\"post-pre\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;LinearLayout xmlns:android=\"https:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"https:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"https:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    android:layout_gravity=\"center\"\r\n    android:gravity=\"center\"\r\n    android:layout_margin=\"16dp\"\r\n    android:orientation=\"vertical\"\r\n    tools:context=\".MainActivity\"&gt;\r\n\r\n\r\n    &lt;TextView\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:gravity=\"center\"\r\n        android:text=\"PLAY\/STOP SONG.\\nSCRUB WITH SEEKBAR\"\r\n        android:textStyle=\"bold\" \/&gt;\r\n\r\n\r\n    &lt;SeekBar\r\n        android:id=\"@+id\/seekbar\"\r\n        android:layout_margin=\"16dp\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:layout_gravity=\"center\" \/&gt;\r\n\r\n\r\n    &lt;TextView\r\n        android:id=\"@+id\/textView\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\" \/&gt;\r\n\r\n\r\n    &lt;android.support.design.widget.FloatingActionButton\r\n        android:id=\"@+id\/button\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:layout_margin=\"16dp\"\r\n        android:src=\"@android:drawable\/ic_media_play\"\r\n        android:text=\"PLAY SOUND\" \/&gt;\r\n\r\n&lt;\/LinearLayout&gt;\r\n<\/code><\/pre>\n<p>Below is the code for the MainActivity.java class, where we have included a FloatingActionButon that can be activated or deactivated by clicking on it.<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.androidmediaplayersong;\r\n\r\nimport android.content.res.AssetFileDescriptor;\r\nimport android.media.MediaPlayer;\r\nimport android.support.design.widget.FloatingActionButton;\r\nimport android.support.v4.content.ContextCompat;\r\nimport android.support.v7.app.AppCompatActivity;\r\nimport android.os.Bundle;\r\nimport android.view.View;\r\nimport android.widget.SeekBar;\r\nimport android.widget.TextView;\r\n\r\npublic class MainActivity extends AppCompatActivity implements Runnable {\r\n\r\n\r\n    MediaPlayer mediaPlayer = new MediaPlayer();\r\n    SeekBar seekBar;\r\n    boolean wasPlaying = false;\r\n    FloatingActionButton fab;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n\r\n\r\n        fab = findViewById(R.id.button);\r\n\r\n        fab.setOnClickListener(new View.OnClickListener() {\r\n            @Override\r\n            public void onClick(View view) {\r\n                playSong();\r\n            }\r\n        });\r\n\r\n        final TextView seekBarHint = findViewById(R.id.textView);\r\n\r\n        seekBar = findViewById(R.id.seekbar);\r\n\r\n        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {\r\n            @Override\r\n            public void onStartTrackingTouch(SeekBar seekBar) {\r\n\r\n                seekBarHint.setVisibility(View.VISIBLE);\r\n            }\r\n\r\n            @Override\r\n            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {\r\n                seekBarHint.setVisibility(View.VISIBLE);\r\n                int x = (int) Math.ceil(progress \/ 1000f);\r\n\r\n                if (x  0 &amp;&amp; mediaPlayer != null &amp;&amp; !mediaPlayer.isPlaying()) {\r\n                    clearMediaPlayer();\r\n                    fab.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, android.R.drawable.ic_media_play));\r\n                    MainActivity.this.seekBar.setProgress(0);\r\n                }\r\n\r\n            }\r\n\r\n            @Override\r\n            public void onStopTrackingTouch(SeekBar seekBar) {\r\n\r\n\r\n                if (mediaPlayer != null &amp;&amp; mediaPlayer.isPlaying()) {\r\n                    mediaPlayer.seekTo(seekBar.getProgress());\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    public void playSong() {\r\n\r\n        try {\r\n\r\n\r\n            if (mediaPlayer != null &amp;&amp; mediaPlayer.isPlaying()) {\r\n                clearMediaPlayer();\r\n                seekBar.setProgress(0);\r\n                wasPlaying = true;\r\n                fab.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, android.R.drawable.ic_media_play));\r\n            }\r\n\r\n\r\n            if (!wasPlaying) {\r\n\r\n                if (mediaPlayer == null) {\r\n                    mediaPlayer = new MediaPlayer();\r\n                }\r\n\r\n                fab.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, android.R.drawable.ic_media_pause));\r\n\r\n                AssetFileDescriptor descriptor = getAssets().openFd(\"suits.mp3\");\r\n                mediaPlayer.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());\r\n                descriptor.close();\r\n\r\n                mediaPlayer.prepare();\r\n                mediaPlayer.setVolume(0.5f, 0.5f);\r\n                mediaPlayer.setLooping(false);\r\n                seekBar.setMax(mediaPlayer.getDuration());\r\n\r\n                mediaPlayer.start();\r\n                new Thread(this).start();\r\n\r\n            }\r\n\r\n            wasPlaying = false;\r\n        } catch (Exception e) {\r\n            e.printStackTrace();\r\n\r\n        }\r\n    }\r\n\r\n    public void run() {\r\n\r\n        int currentPosition = mediaPlayer.getCurrentPosition();\r\n        int total = mediaPlayer.getDuration();\r\n\r\n\r\n        while (mediaPlayer != null &amp;&amp; mediaPlayer.isPlaying() &amp;&amp; currentPosition &lt; total) {\r\n            try {\r\n                Thread.sleep(1000);\r\n                currentPosition = mediaPlayer.getCurrentPosition();\r\n            } catch (InterruptedException e) {\r\n                return;\r\n            } catch (Exception e) {\r\n                return;\r\n            }\r\n\r\n            seekBar.setProgress(currentPosition);\r\n\r\n        }\r\n    }\r\n\r\n    @Override\r\n    protected void onDestroy() {\r\n        super.onDestroy();\r\n        clearMediaPlayer();\r\n    }\r\n\r\n    private void clearMediaPlayer() {\r\n        mediaPlayer.stop();\r\n        mediaPlayer.release();\r\n        mediaPlayer = null;\r\n    }\r\n}\r\n\r\n<\/code><\/pre>\n<p>When the FloatingActionButton is clicked in the code above, the playSong function is activated. In this function, the song is stopped, the MediaPlayer and FloatingActionButton icon are reset every second time. Once mediaPlayer.prepare() is called, the song details become available. The duration is obtained and set as the maximum position of the SeekBar. By setting looping to false, the song will not play infinitely until the user stops it. The thread is started, triggering the run method from the implemented Runnable interface. Inside the run method, the progress is updated every second, which triggers the onProgressChanged method of the SeekBar listener. In the listener, the TextView offset is set below the SeekBar&#8217;s thumb. The time duration is set by converting milliseconds to seconds. When the SeekBar is moved, the same method is triggered. When the user stops scrubbing the SeekBar, the onStopTrackingTouch method is triggered, and the song position is updated using the seekTo method on the MediaPlayer instance. Once the song is completed, the SeekBar position is reset to the initial position, and the MediaPlayer instance is cleared. The application output without audio is provided below. This concludes the tutorial. You can download the project from the link below and play the song yourself.<\/p>\n<p>One option for paraphrasing &#8220;AndroidMediaPlayerSong&#8221; natively could be &#8220;Song played using the Android Media Player.&#8221;<\/p>\n<p>Link to the project on GitHub<\/p>\n<p>&nbsp;<\/p>\n<p>more\u00a0 tutorials<\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/interview-questions-and-answers-specifically-about-android\/\" target=\"_blank\" rel=\"noopener\">Interview Questions and Answers specifically about Android<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/toggle-button-in-android\/\" target=\"_blank\" rel=\"noopener\">Toggle button in Android<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-a-pandas-dataframe-be-acquired-from-an-api-endpoint-that-lacks-order\/\" target=\"_blank\" rel=\"noopener\">get pandas DataFrame from an API endpoint that lacks order?<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/okhttp-on-android\/\" target=\"_blank\" rel=\"noopener\">OkHttp on Android<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/broadcastreceiver-android-tutor\/\" target=\"_blank\" rel=\"noopener\">BroadcastReceiver Example Tutorial on Android<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, we will utilize the MediaPlayer class to create a simple Audio Player within our Android Application. We will incorporate a Play\/Stop functionality and provide the user with the ability to adjust the position of the song using a SeekBar. One possible paraphrase for &#8220;Android MediaPlayer&#8221; is &#8220;Media player for Android devices.&#8221; The [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[148,13,146,120,147,118,152,151,149,150],"class_list":["post-993","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-android-audio","tag-android-development","tag-android-mediaplayer","tag-android-programming","tag-android-seekbar","tag-android-tutorial","tag-audio-player-android","tag-java-android","tag-mediaplayer-tutorial","tag-seekbar-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android Media Player Song Featuring SeekBar - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to build an Android audio player with MediaPlayer and SeekBar. Complete tutorial with play\/stop controls, progress tracking, and volume management.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Media Player Song Featuring SeekBar\" \/>\n<meta property=\"og:description\" content=\"Learn how to build an Android audio player with MediaPlayer and SeekBar. Complete tutorial with play\/stop controls, progress tracking, and volume management.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-30T15:54:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-18T14:49:37+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"Android Media Player Song Featuring SeekBar\",\"datePublished\":\"2022-08-30T15:54:03+00:00\",\"dateModified\":\"2025-07-18T14:49:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\"},\"wordCount\":594,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Android audio\",\"Android development\",\"Android MediaPlayer\",\"Android programming\",\"Android SeekBar\",\"Android tutorial\",\"audio player Android\",\"Java Android\",\"MediaPlayer tutorial\",\"SeekBar tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\",\"name\":\"Android Media Player Song Featuring SeekBar - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2022-08-30T15:54:03+00:00\",\"dateModified\":\"2025-07-18T14:49:37+00:00\",\"description\":\"Learn how to build an Android audio player with MediaPlayer and SeekBar. Complete tutorial with play\/stop controls, progress tracking, and volume management.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Media Player Song Featuring SeekBar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Android Media Player Song Featuring SeekBar - Blog - Silicon Cloud","description":"Learn how to build an Android audio player with MediaPlayer and SeekBar. Complete tutorial with play\/stop controls, progress tracking, and volume management.","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:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/","og_locale":"en_US","og_type":"article","og_title":"Android Media Player Song Featuring SeekBar","og_description":"Learn how to build an Android audio player with MediaPlayer and SeekBar. Complete tutorial with play\/stop controls, progress tracking, and volume management.","og_url":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2022-08-30T15:54:03+00:00","article_modified_time":"2025-07-18T14:49:37+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"Android Media Player Song Featuring SeekBar","datePublished":"2022-08-30T15:54:03+00:00","dateModified":"2025-07-18T14:49:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/"},"wordCount":594,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Android audio","Android development","Android MediaPlayer","Android programming","Android SeekBar","Android tutorial","audio player Android","Java Android","MediaPlayer tutorial","SeekBar tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/","url":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/","name":"Android Media Player Song Featuring SeekBar - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2022-08-30T15:54:03+00:00","dateModified":"2025-07-18T14:49:37+00:00","description":"Learn how to build an Android audio player with MediaPlayer and SeekBar. Complete tutorial with play\/stop controls, progress tracking, and volume management.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/android-media-player-song-featuring-seekbar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Android Media Player Song Featuring SeekBar"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=993"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/993\/revisions"}],"predecessor-version":[{"id":147541,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/993\/revisions\/147541"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}