انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت موزیک پلیر اندروید (Music Player)

ساخت موزیک پلیر اندروید (Music Player)

#1
سلام

این کد یک برنامه موزیک پلیر ساده است که فایل های موجود در حافظه اصلی را جستجو میکنه و موزیک هارا در یک لیست ویو قرار میده
اینم کدهای مربوط به activity_main.xml

کد پی‌اچ‌پی:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
xmlns:tools="http://schemas.android.com/tools"
    
android:layout_width="fill_parent"
    
android:layout_height="fill_parent"
    
android:orientation="vertical"
    
android:background="#c5c5c5" >

  <
LinearLayout 
        android
:id="@+id/ll1"
        
android:layout_width="wrap_content"
        
android:layout_height="wrap_content"
        
android:layout_gravity="center_horizontal">

        <
ImageButton
            android
:id="@+id/stopbtn"
            
android:layout_width="fill_parent"
            
android:layout_height="fill_parent"
            
android:contentDescription="@string/app_name"
             
/>

    </
LinearLayout>
    
    <
LinearLayout 
        android
:id="@+id/ll2"
        
android:layout_width="fill_parent"
        
android:layout_height="wrap_content">
        
       <
ListView
           android
:id="@id/android:list"
           
android:layout_width="match_parent"
           
android:layout_height="fill_parent" >
           
       </
ListView>       
   </
LinearLayout>
    
       
</
LinearLayout

اینم کدهای مربوط به MainActivity.java

کد پی‌اچ‌پی:
package com.نام پکیج خود را وارد کنید;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ListView;
import android.app.ListActivity;


class 
Mp3Filter implements FilenameFilter{
    public 
boolean accept(File dirString name){
        return (
name.endsWith(".mp3"));
    }
}


public class 
MainActivity extends ListActivity {
    
    private static final 
String SD_PATH = new String ("/mnt/sdcard/");
    private List<
Stringsongs = new ArrayList<String>();
    private 
MediaPlayer mp = new MediaPlayer();
    
    @
Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
updatePlayList();
        
        
        
ImageButton stopPlay = (ImageButtonfindViewById(R.id.stopbtn);
        
        
stopPlay.setOnClickListener(new OnClickListener() {
            
            public 
void onClick(View arg0) {
                
mp.stop();
            }
        });
                
    }
    
   
    
    @
Override
    
protected void onListItemClick(ListView list, View viewint positionlong id)
    {
        try{
            
mp.reset();
            
mp.setDataSource(SD_PATH songs.get(position));
            
mp.prepare();
            
mp.start();
        } catch (
IOException e){
            
Log.v(getString(R.string.app_name), e.getMessage());
        }
    }
//
    
private void updatePlayList() {
        
File home = new File(SD_PATH);
        if(
home.listFiles(new Mp3Filter()).length>0){
            for(
File filehome.listFiles(new Mp3Filter())){
                
songs.add(file.getName());
            }
            
            
ArrayAdapter<StringsongList = new ArrayAdapter<String>(thisR.layout.song_itemsongs);
            
setListAdapter(songList);
        }
    }


نکته مهم: شما هر آدرسی را که به جای /mnt/sdcard/ وارد کنید، تنها موزیک های موجود در همان مسیر به لیست برنامه اضافه می شوند. ما می خواهیم موزیک های موجود در مسیر /mnt/sdcard/ خوانده شوند، اگر هیچ موزیکی در این مسیر وجود نداشته باشد، چیزی به لیست اضافه نمی شود و با صفحه خالی روبرو می شوید.


تو این برنامه چندتا مشکل هست!!!
1.چطوری میتونیم دکمه next و back را به برنامه اضاف کنیم؟
2.وقتی برنامه در حال اجراست و دکمه back بروی گوشی میزنیم ،موسیقی(مثلا موسیقی A) در حال پخش است و وقتی دوباره به برنامه باز میگردیم و موسیقی B را انتخاب کنیم هر دو موسیقی AوB همزمان درحال پخش هستند، برای جلوگیری ازین عمل چکاری انجام بدهیم؟
متشکرم
پاسخ

ساخت موزیک پلیر اندروید (Music Player)

#2
سلام.
در مورد توقف موسیقی، هنگام خروج از Activity ، موضوع زیر را بخوانید :

http://www.kelidestan.com/forum/showthread.php?tid=4857

یعنی باید کدی برای stop و همچنین reset شدن موسیقی در حال پخش، در روش onStop (یا onPause) آن Activity بنویسید. مشابه کد زیر :

کد پی‌اچ‌پی:
mediaPlayer.stop();
mediaPlayer.reset(); 

که در روش onStop (یا onPause) نوشته می شود :

کد پی‌اچ‌پی:
@Override
protected void onPause() {
    
// TODO Auto-generated method stub
    
super.onPause();
    
    
mediaPlayer.stop();
    
mediaPlayer.reset();
    
// finish();


در صورت تمایل، خط مربوط به finish را می توانید از حالت توضیح دربیاورید (اگر دستور finish اجرا شود، Activity بسته خواهد شد و دیگر در پس زمینه نیست).
همچنین می توانید آن کد را در روش onBackPressed (برای اجرا هنگام اشاره بر روی دکمه Back) بنویسید (بستگی به ساختار برنامه اندروید مورد نظرتان دارد) :

کلید شماره 234
 
در مورد ساخت دو دکمه برای موسیقی های قبل و بعد هم باید دو تا عنصر Button تعریف کنید و بعد بر اساس اینکه آهنگی در حال پخش باشد یا نه، کدهای اجرایی Button را تعیین خواهید کرد (کلید شماره 2728). اگر آهنگی در حال پخش باشد، باید همان روش های stop و reset برایش اجرا شود و بعد آهنگ بعدی پخش شود. 

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان