سلام
این کد یک برنامه موزیک پلیر ساده است که فایل های موجود در حافظه اصلی را جستجو میکنه و موزیک هارا در یک لیست ویو قرار میده
اینم کدهای مربوط به activity_main.xml
اینم کدهای مربوط به MainActivity.java
نکته مهم: شما هر آدرسی را که به جای /mnt/sdcard/ وارد کنید، تنها موزیک های موجود در همان مسیر به لیست برنامه اضافه می شوند. ما می خواهیم موزیک های موجود در مسیر /mnt/sdcard/ خوانده شوند، اگر هیچ موزیکی در این مسیر وجود نداشته باشد، چیزی به لیست اضافه نمی شود و با صفحه خالی روبرو می شوید.
تو این برنامه چندتا مشکل هست!!!
1.چطوری میتونیم دکمه next و back را به برنامه اضاف کنیم؟
2.وقتی برنامه در حال اجراست و دکمه back بروی گوشی میزنیم ،موسیقی(مثلا موسیقی A) در حال پخش است و وقتی دوباره به برنامه باز میگردیم و موسیقی B را انتخاب کنیم هر دو موسیقی AوB همزمان درحال پخش هستند، برای جلوگیری ازین عمل چکاری انجام بدهیم؟
متشکرم
این کد یک برنامه موزیک پلیر ساده است که فایل های موجود در حافظه اصلی را جستجو میکنه و موزیک هارا در یک لیست ویو قرار میده
اینم کدهای مربوط به 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 dir, String name){
return (name.endsWith(".mp3"));
}
}
public class MainActivity extends ListActivity {
private static final String SD_PATH = new String ("/mnt/sdcard/");
private List<String> songs = 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 = (ImageButton) findViewById(R.id.stopbtn);
stopPlay.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
mp.stop();
}
});
}
@Override
protected void onListItemClick(ListView list, View view, int position, long 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 file: home.listFiles(new Mp3Filter())){
songs.add(file.getName());
}
ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.song_item, songs);
setListAdapter(songList);
}
}
}
نکته مهم: شما هر آدرسی را که به جای /mnt/sdcard/ وارد کنید، تنها موزیک های موجود در همان مسیر به لیست برنامه اضافه می شوند. ما می خواهیم موزیک های موجود در مسیر /mnt/sdcard/ خوانده شوند، اگر هیچ موزیکی در این مسیر وجود نداشته باشد، چیزی به لیست اضافه نمی شود و با صفحه خالی روبرو می شوید.
تو این برنامه چندتا مشکل هست!!!
1.چطوری میتونیم دکمه next و back را به برنامه اضاف کنیم؟
2.وقتی برنامه در حال اجراست و دکمه back بروی گوشی میزنیم ،موسیقی(مثلا موسیقی A) در حال پخش است و وقتی دوباره به برنامه باز میگردیم و موسیقی B را انتخاب کنیم هر دو موسیقی AوB همزمان درحال پخش هستند، برای جلوگیری ازین عمل چکاری انجام بدهیم؟
متشکرم