همیار اندروید
همیار اندروید
همیار اندروید
نه
بله
منوی وبسایت
حساب کاربری

همیار اندروید

مرجــع تخصـصــی توسـعــه انــدرویــد

منوی وبسایت
حساب کاربری

ساخت مدیا پلیر Media Player در برنامه نویسی اندروید

ساخت مدیا پلیر Media Player در برنامه نویسی اندروید
نوع هزینه
شرکت کنندگان
دریافت دسترسی
مشخصات این آموزش
موضوعات مرتبط
زبان برنامه‌نویسی
Java   ,   XML
نوع قسمت‌ها
محتوای ارائه شده
متن   ,   تصویر
مهارت های مورد نیاز
وضعیت انتشار
سطح آموزش
آخرین آپدیت
مباحثی که در این آموزش یاد خواهید گرفت
آموزش ساخت Media Player
آموزش کار با Boolean
Toast
فعال و غیر فعال کردن BUtton هنگام اجرای برنامه
چگونگی ایجاد پوشه raw برای جای گذاری آهنگ
یادگیری این آموزش

به نام خدا

سلام دوستان

در این بخش از آموزش میخام بهتون یاد بدم که چجوری میتونید در یک صفحه از

 برنامتون یک آهنگ رو پخش کنید در اصل میخام یک player رو بهتون آموزش

بدم و انشاالله در جلسات آینده ساخت یک مدیا پلیر حرفه ای رو بهتون آموزش میدم 

فلسفه کار ما در تیم همیار اندروید این است که ابتدا با اکثر مباحث اندروید آشنا بشیم

بعد این مباحث رو با هم ترکیب کنیم و کم کم برنامه های بزرگتری با هم تولید کنیم

 

 

اولین قدم

اول از همه ما باید بدونیم که برای تولید برنامه به چه چیزهایی نیاز داریم

خب من یک دکمه برای پخش آهنگ میخام یک دکمه هم برای مکث / حرکت آهنگ

لازم دارم یک دکمه برای جلو بردن آهنگ و یک دکمه برای عقب کشیدم آهنگ

پس ما به چهارتا Button  نیاز دازیم

طبق کد زیر من چهارتا Button ایجاد می کنم

activity.main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HamyarAndroid.com"
        android:textSize="30sp"/>


    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="شروع"
        android:id="@+id/start_btn"
        android:layout_marginTop="30dp"/>

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/pause_btn"
        android:text="مکث / حرکت"
        android:layout_marginTop="15dp"/>

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="جلو"
        android:id="@+id/forward_btn"
        android:layout_marginTop="15dp"/>

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="عقب"
        android:id="@+id/back_btn"
        android:layout_marginTop="15dp"/>








</LinearLayout>

همانطور که در بالا می بینید من چهارتا Button ایجاد کردم که تصویرش رو می تونید در پایین ببینید

 

 

 

قدم دوم

در این مرحله باید یک آهنگی از سیستم وارد پروژه بکنیم

خب ابتدا از مسیر زیر یک پوشه ایجاد میکنیم به نام raw  وآهنگ رو از سیستم کپی میکنیم

و درون raw می ریزیم یا همون past می کنیم

روی res راست کلیک میکنیم بعد new بعدش روی directory کلیک می کنیم و اسمش رو raw میزاریم

و یک آهنگ درونش می ریزیم که اسم آهنگ که من داخل کدهام ازش استفاده کردم ahang هستش

 

 

قدم سوم

حالا نوبت نوشتن کدهای جاوا میرسه در کلاس مورد نظر

من کدها رو در پایین نوشتم و در آخر خط به خط براتون توضیحشون رو می نویسم

MainActivity.java

package com.hamyarandroid.player;

import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {


    Button start, pause, forward, back;
    MediaPlayer medPlayer;
    boolean pauseStatus;


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


        start = findViewById(R.id.start_btn);
        pause = findViewById(R.id.pause_btn);
        forward = findViewById(R.id.forward_btn);
        back = findViewById(R.id.back_btn);

        medPlayer = MediaPlayer.create(MainActivity.this, R.raw.ahang);
        final int seekForwardTime = 5 * 1000;
        final int seekBackwardTime = 5 * 1000;



        pause.setEnabled(false);
        forward.setEnabled(false);
        back.setEnabled(false);

        pauseStatus = true;





        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                medPlayer.start();
                pause.setEnabled(true);
                forward.setEnabled(true);
                back.setEnabled(true);
                start.setEnabled(false);


            }

        });

        pause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {
                if (pauseStatus)
                {
                    pauseStatus = false;
                    medPlayer.pause();
                    Toast.makeText(MainActivity.this,"مکث در آهنگ",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    pauseStatus = true;
                    medPlayer.start();
                    Toast.makeText(MainActivity.this,"حرکت آهنگ",Toast.LENGTH_SHORT).show();
                }

            }
        });


        forward.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                int currentPosition = medPlayer.getCurrentPosition();

                if(currentPosition + seekForwardTime <= medPlayer.getDuration()){
                    medPlayer.seekTo(currentPosition + seekForwardTime);
                    Toast.makeText(MainActivity.this,"پرش به جلو",Toast.LENGTH_SHORT).show();
                }else{
                    medPlayer.seekTo(medPlayer.getDuration());
                    Toast.makeText(MainActivity.this,"پایان آهنگ",Toast.LENGTH_SHORT).show();
                }
            }
        });


       back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                int currentPosition = medPlayer.getCurrentPosition();


                if(currentPosition - seekBackwardTime >= 0){
                    medPlayer.seekTo(currentPosition - seekBackwardTime);
                    Toast.makeText(MainActivity.this,"برگشت به عقب",Toast.LENGTH_SHORT).show();
                }else{
                    medPlayer.seekTo(0);
                    Toast.makeText(MainActivity.this,"اول آهنگ",Toast.LENGTH_SHORT).show();
                }

            }
        });

    }

}

خب کد جاوا رو نوشتم و حالا خط به خط براتون توضیحش میدم

خط 15

باتن های داخل layout را به کلاس معرفی کردم

خط 16

یک مدیا پلیر ایجاد کردم و اسمش را medPlayer گذاشتم

خط 17

یک Boolean ایجاد کردم  برای دکمه مکث به نام pauseStatus که در پایین بیشتر در موردش توضیح میدم

خط های 27 تا 30 

باتن های معرفی شده را از طریق آی دی به ویوها متصل کردم

خط 32

آهنگ که در قدم دوم در پوشه raw ریخته بودیم رو به medPlayer وصل کریم

خط 33

مقدار پرش به جلوی آهنگ رو مشخص کردم که با هر بار کلیک به اندازه چه تایمی به جلو پرش کند

خط 34

مقدار تایم پرش به عقب را مشخص کردم

خط های 38 تا 40

در اینجا سه تا از باتن ها رو گفتم وقتی برنامه رو اجرا میکنن شما در حالت خاموش باشید

یعنی نمی توانید کلیک بخورید چون میخام بعد از شروع آهنگ این دکمه ها قابلیت کلیک خوری پیدا کنند

خط 42

گفتیم بهش که pausStatus یا حالت مکث  را در حالت عادی به  حالت true نگه دار

خط های 48 تا 62

به باتن Start خاصیت کلیک خوری میدهیم

خط 52

این خط با زدن کلیک start باعث شروع مدیا پلیر میشه

خط 53 تا 55

با زدن کلیک stsrt سه تا باتن فعال میشوند 

اگر یادتون باشه من اونا رو در بالا غیر فعال کرده بودم در خط های 38 تا 40 تا زمانی که 

آهنگ شروع به پخش بشه و در اینجا چون آهنگ داره پخش میشه این سه تا دکمه هم فعال میشوند

خط 56

این یک دکمه هم بر خلاف اون سه تا دکمه که در بالا گفتم این دکمه start بعد از کلیک خوردنش

غیر فعال میشه چون دیگه باهاش کاری نداریم

خط های 63 تا 81

به دکمه pause خاصیت کلیک خوری دادیم

خط 67

یک if ایجاد کردیم از pauseStatuse که حالت عادی اون رو هم در بالا یعنی در خط 42 گفتیم که true است

خط های 69 تا 71

گفتم  اگر pauseStatuse در حالت true بود اون رو false بکن وmedPlayer را به حالت pause دربیاور

و متن "مکث در آهنگ" را برای من Toast بکن

(pauseStatuse  چون در حالت عادی خط 42 true هستش با اولین کلیک به حالت false در میاد و آهنگ pause میشه)

خط های 73 تا 77

گفتم در غیر اینصورت بعد از کلیک کردن دکمه اگر pauseStatus در حالت true نبود یعنی false بود 

 آن را برای من true بکن و آهنگ را برای من پخش کن و جمله " حرکت آهنگ " را Toast کن

دوستان شما میتونید برای درک if آموزش Boolean را از همینجا مطالعه کنید

خط های 84 تا 99

خاصیت کلیک خوری به دکمه forward دادم

خط 89

مقدار زمانی که از آهنگ رفته رو میگیره

خط های 91  تا 96

درخط 91 میاد مقدار زمانی که از آهنگ رفته را با مقداری که میخاد به جلو بپره جمع میزنه ببینه از مقدار زمان کل آهنگ کمترمیشه یانه

اگر کمتر بود پس در خط 93 میاد و مقدارپرش که درخط 33 خودمون عددش رو گفتیم با مقدار زمانی که از آهنگ رفته رو جمع میزنه و به اون تایم از آهنگ میپره

اگر هم در خط 91 مقدار جمع زده شده بیشتر از مقدار زمان کل آهنگ بود میاد و خط 96 را اجرا میکند یعنی آهنگ را به پایان میرساند

خط های 102 تا 119 

به دکمه BackWard خاصیت کلیک خوری دادیم

خط های 107 تا 116 

دستور های Backward درست بر عکس دستورهای Forward هستن

 

تصویر های خروجی برنامه رو می تونید در پایین ببینید

اولین عکس قبل از اجرای آهنگ 

همانطور که می بینید سه باتن غیر فعال هستند

تصویر زیر بعد از شروع آهنگ هستش

سه دکمه غیر فعال، فعال شدن و دکمه شروع چون آهنگ شروع به حرکت کرده دیگه باهاش کاری نداریم و غیر فعال میشه

 

تصویر زیر مکث آهنگ هستش یا همان Pause

 

زدن دوباره دکمه Pause که باعث حرکت آهنگ میشه

 

 

تصویر زیر جلو بردن آهنگ هستش

 

تصویر زیر مربوط به زمانی هستش که آخرای آهنگ است و شما دکمه جلو را میزنید

 

 

برگشت به عقب

 

تصویر زیر مربوط به زمانی هستش که شما نزدیک به اول زمان آهنگ هستین و باز دکمه عقب رو میزنید 

 

امیدوارم از این آموزش لذت ببرید 

اگر سوالی در مورد این آموزش داشتین میتونید در تلگرام از تیم همیار اندروید بپیرسین

همیار اندروید همیشه همیار شماست

به امید موفقیت روز افزون

 

HRoid.ir/t171
لینک کوتاه این آموزش برای انتشار در شبکه های اجتماعی
نظرات این آموزش
ابتدا باید وارد حساب کاربری خود شوید ، تا بتوانید برای این آموزش نظری ارسال کنید
هنوز نظری برای این آموزش ثبت نشده است
کپی برداری از محتوا و دیگر منابع اختصاصی به هر نحو غیر مجاز است. حتی با ذکر منبع. در صورت تخلف پیگرد قانونی به همراه خواهد داشت.
Copyright © 2020 , www.HamyarRoid.com , www.HamyarAndroid.com , Terms , Sitemap
خلـــق هـمیـار انـدرویــد با
logo-samandehi