آموزش برنامه نویسی اندروید (Android)
دسته بندی ( ۴۸۲ آموزش )
نمایش دسته بندی ها (۴۸۲ آموزش)
مباحث اولیه، در برنامه نویسی اندروید
مباحث اولیه، در برنامه نویسی اندروید 28
کار با Activity ها ، در برنامه نویسی اندروید
کار با Activity ها ، در برنامه نویسی اندروید 21
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید 11
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید 11
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید 10
کار با برنامه Android Studio ، در برنامه نویسی اندروید
کار با برنامه Android Studio ، در برنامه نویسی اندروید 9
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید 3
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید 9
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید 23
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید 38
ساخت دکمه (Button) ، در برنامه نویسی اندروید
ساخت دکمه (Button) ، در برنامه نویسی اندروید 7
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید 12
ساخت EditText، در برنامه نویسی اندروید
ساخت EditText، در برنامه نویسی اندروید 6
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید 13
طراحی متریال (Material Design)، در برنامه نویسی اندروید
طراحی متریال (Material Design)، در برنامه نویسی اندروید 3
پخش موسیقی، در برنامه نویسی اندروید
پخش موسیقی، در برنامه نویسی اندروید 5
نمایش انیمیشن، در برنامه نویسی اندروید
نمایش انیمیشن، در برنامه نویسی اندروید 3
تغییر ویژگی های کلی برنامه اندروید
تغییر ویژگی های کلی برنامه اندروید 3
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید 2
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید 10
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید 21
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید 8
حلقه ها (for و while و ...)، در برنامه نویسی اندروید
حلقه ها (for و while و ...)، در برنامه نویسی اندروید 2
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید 11
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید 10
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید 4
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید 5
بازی سازی، در برنامه نویسی اندروید
بازی سازی، در برنامه نویسی اندروید 1
به اشتراک گذاری (share)، در برنامه نویسی اندروید
به اشتراک گذاری (share)، در برنامه نویسی اندروید 5
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید 15
کار با پوشه های raw و assets ، در برنامه نویسی اندروید
کار با پوشه های raw و assets ، در برنامه نویسی اندروید 2
عملیات های ریاضی، در برنامه نویسی اندروید
عملیات های ریاضی، در برنامه نویسی اندروید 13
کار با دوربین (Camera)، در برنامه نویسی اندروید
کار با دوربین (Camera)، در برنامه نویسی اندروید 3
کار با action bar ، در برنامه نویسی اندروید
کار با action bar ، در برنامه نویسی اندروید 4
کار با کلاس ها (class) ، در برنامه نویسی اندروید
کار با کلاس ها (class) ، در برنامه نویسی اندروید 4
کار با package ها ، در برنامه نویسی اندروید
کار با package ها ، در برنامه نویسی اندروید 2
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز)
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز) 2
امنیت، در برنامه نویسی اندروید
امنیت، در برنامه نویسی اندروید 1
Thread ها، در برنامه نویسی اندروید
Thread ها، در برنامه نویسی اندروید 3
سرویس ها (Service)، در برنامه نویسی اندروید
سرویس ها (Service)، در برنامه نویسی اندروید 9
BroadcastReceiver ، در برنامه نویسی اندروید
BroadcastReceiver ، در برنامه نویسی اندروید 0
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید 11
AsyncTask ، در برنامه نویسی اندروید
AsyncTask ، در برنامه نویسی اندروید 2
آرایه ها (Arrays)، در برنامه نویسی اندروید
آرایه ها (Arrays)، در برنامه نویسی اندروید 3
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید 6
رنگ ها (Colors)، در برنامه نویسی اندروید
رنگ ها (Colors)، در برنامه نویسی اندروید 3
Fragment ها و Tab بندی، در برنامه نویسی اندروید
Fragment ها و Tab بندی، در برنامه نویسی اندروید 8
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید 1
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید 3
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید 1
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید 2
پرداخت درون برنامه ای، در برنامه نویسی اندروید
پرداخت درون برنامه ای، در برنامه نویسی اندروید 1
 پروژه های اندروید Open Source کاربران کلیدستان
پروژه های اندروید Open Source کاربران کلیدستان 2
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید 5
مباحث عمومی، در برنامه نویسی اندروید
مباحث عمومی، در برنامه نویسی اندروید 35

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

در این مبحث قصد داریم که یک پروژه اندروید بسازیم که در آن، کاربر می تواند به یک آهنگ گوش دهد و با استفاده از یک SeekBar می تواند آهنگ را به جلو یا عقب ببرد :

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

من به طور دلخواه انتخاب کرده ام که هنگامی که کاربر بر روی گزینه مخصوص عقب و جلو بردن آهنگ، اشاره می کند، آهنگ همچنان در حال پخش باشد، اما اگر این حالت برای شما مطلوب نبود، می توانید کدها را کمی تغییر دهید (مثلا پخش آهنگ را در این حالت، متوقف کنید).

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام MediaPlayerPlayback می سازیم (نام package را برابر com.kelidestan.mediaplayerplayback انتخاب می کنیم. نام activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم برابر activity_main قرار می دهیم).

در پوشه بندی پروژه اندروید، درون پوشه res ، یک پوشه با نام raw می سازیم و درون آن، یک فایل mp3 با نام my_file.mp3 که مربوط به آهنگ مورد نظرمان است را کپی می کنیم :

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

بد نیست این تذکر را بدهم که گاهی در برنامه eclipse ، هنگام کپی کردن فایل ها به درون زیرپوشه های پوشه res ، ممکن است برنامه eclipse اعلام کند که با نام فایل، مشکل دارد. مثلا ممکن است با نام MyFile.mp3 مشکل داشته باشد، اما نام my_file.mp3 هیچ مشکلی ایجاد نکند.

اکنون فایل activity_main.xml را باز می کنیم :

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

کدهای فایل activity_main.xml را به صورت زیر تغییر می دهیم :


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 
    <TextView
        android:id="@+id/text_shown"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="120dp"
        android:textSize="42sp" />
 
    <SeekBar
        android:id="@+id/seek_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

    <Button
        android:id="@+id/play_button"
        android:layout_width="120dp"
        android:layout_height="60dp"
        android:layout_below="@+id/seek_bar"
        android:layout_marginTop="60dp"
        android:gravity="center"
        android:text="Play" />
 
    <Button
        android:id="@+id/pause_button"
       android:layout_width="120dp"
        android:layout_height="60dp"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/seek_bar"
        android:layout_marginTop="60dp"
        android:text="Pause" />
 
</RelativeLayout>

بنابراین، از نظر گرافیکی، فایل activity_main.xml ، به صورت زیر خواهد بود :

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

سپس فایل MainActivity.java که همان Activity اصلی برنامه اندروید است را باز می کنیم :

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

کدهای فایل MainActivity.java را به صورت زیر می نویسیم :


package com.kelidestan.mediaplayerplayback;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {
       
        SeekBar seek_bar;
    Button play_button, pause_button;
    MediaPlayer mediaPlayer;
    TextView text_shown;
    Handler seekHandler = new Handler();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                getInit();
        seekUpdation();
        }


    public void getInit() {  
        seek_bar = (SeekBar) findViewById(R.id.seek_bar);
        play_button = (Button) findViewById(R.id.play_button);
        pause_button = (Button) findViewById(R.id.pause_button);
        text_shown = (TextView) findViewById(R.id.text_shown);
        play_button.setOnClickListener(this);
        pause_button.setOnClickListener(this);
        mediaPlayer = MediaPlayer.create(this, R.raw.my_file);
        seek_bar.setMax(mediaPlayer.getDuration());
    }

    Runnable run = new Runnable() {

        @Override
        public void run() {
            seekUpdation();
        }
    };

    public void seekUpdation() {

        seek_bar.setProgress(mediaPlayer.getCurrentPosition());
        seekHandler.postDelayed(run, 1000);
        seek_bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                       
                        @Override
                        public void onStopTrackingTouch(SeekBar seek_bar) {
                                // TODO Auto-generated method stub
                               
                        }
                       
                        @Override
                        public void onStartTrackingTouch(SeekBar seek_bar) {
                                // TODO Auto-generated method stub
                               
                        }
                       
                        @Override
                        public void onProgressChanged(SeekBar seek_bar, int progress, boolean fromUser) {
                                if(fromUser){
                                    mediaPlayer.seekTo(progress);
                                    seek_bar.setProgress(progress);
                                }
                               
                        }
                });
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
        case R.id.play_button:
            text_shown.setText("Playing...");
            mediaPlayer.start();
            break;
        case R.id.pause_button:
                mediaPlayer.pause();
            text_shown.setText("Paused...");
        }
    }
   
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        if(fromUser){
            mediaPlayer.seekTo(progress);
            seekBar.setProgress(progress);
        }
    }
   
   
    @Override
    public void onBackPressed() {
        mediaPlayer.stop();
        finish();
    }
     
}

پروژه اندروید آماده است و می توانید آن را به روش دلخواه، تست کنید. مثلا من آن را تبدیل به فایل apk کرده و در یک گوشی واقعی تست کردم، نتیجه به صورت زیر است (کاربر می تواند ضمن گوش دادن به آهنگ، آن را به عقب یا جلو ببرد) :

پخش یک فایل صوتی با استفاده از MediaPlayer ، با قابلیت به عقب و جلو بردن آهنگ (با استفاده از SeekBar)، در برنامه نویسی اندروید

فایل های پروژه اندروید را می توانید از لینک های زیر دریافت کنید :

کدهای این مبحث، بر اساس منبع زیر می باشد (البته با کمی تغییر) :

http://mrbool.com/how-to-play-audio-files-in-android-with-a-seekbar-feature-and-mediaplayer-class/28243

توضیحات بیشتر در مورد کدها :

نکته

کدهای زیر باعث می شود که اگر کاربر بر روی دکمه Back گوشی اشاره کرد، ابتدا پخش آهنگ متوقف شود و سپس از برنامه خارج گردد (اگر این کدها نباشد، آهنگ متوقف نخواهد شد و برنامه در پس زمینه گوشی در حال اجرا می باشد و کاربر آهنگ را همچنان می شوند) :


@Override
public void onBackPressed() {
    mediaPlayer.stop();
    finish();
}
نویسنده علیرضا گلمکانی
شماره کلید 359
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 3 3 0
حسین
۱۳۹۵/۰۸/۱۶
۰۲:۳۱

سلام،

واقعا خسته نباشید میگم با تمام وجود که سایتتون فوق العاده است...

این مدیا پلیر عالی ، دقیقا همونی که لازم داشتم فقط ممنون میشم اگه دکمه stop رو هم درونش قرار بدین هر کاری می کنم درست کار نمی کنه .... !!!

AlI
۱۳۹۵/۱۲/۰۲
۰۳:۵۸

سلام .خسته نباشید .دمتون گرم. میگم اگه بخوایم اهنگ از نت به صورت انلاین پخش بشه به همین شیوه استفاده از سیك بار چطوری باید بنویسیم كدهاشو ؟ ممنون میشم كمكم كنید. باز هم از زحماتتون بی نهایت ممنونم.

علی
۱۳۹۵/۱۲/۰۴
۰۳:۰۶

سلام استاد. من میخوام تو آدرس دهی موزیک به جای كدهای raw از url استفاده كنم كه مستقیم از نت بگیره. البته من طراحی موزیک پلیرم حالت كنترلی داره. از سك بار و امیج باتن اینها استفاده كردم. كدی كه بتونم از نت موزیک رو دریافت كنم رو میخواستم. ممنون از سایت خوبتون.

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


کلمات کلیدی

راهنمای کلمات کلیدی (کلاس ها، توابع، عناصر و ...) در برنامه نویسی اندروید، بر اساس حرف اول کلمه کلیدی :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

developer.android.com