بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

آموزش ساخت موزیک پلایر(Music Player) (پوشه Asset)

مدیریت گفتگو
Shadow 11 سال پیش
آخرین تغییر: 10 سال پیش

خوب امیدوارم این آموزش به دردتون بخوره چون من خیلی روش کار کردم تا به نتیجه رسیدم پس (تشکر)-(لایک) یادتون نره ؟!

من زیاد توضیح نمی دم چون سخت نیست .

میریم سراغ کدها :

ابتدا فایل های موجود در پوشه Asset رو داخل حافظه گوشی ذخیره می کنیم این کار رو می تونید هنگام اجرای برنامه یا بعد کلیک رو یه دکمه انجام بدید :

File extStore = Environment.getExternalStorageDirectory();
File myFile = new File(extStore.getAbsolutePath() + "/Paiezi");
if (myFile.exists()) {} else {
new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/NewFolder").mkdir();
copyAssets();
pd.cancel();

}

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

private static final String SD_Path = new String(Environment.getExternalStorageDirectory().toString() + "/NewFolder/");

public ArrayList<String> findSongs(String root) {
ArrayList<String> songs = new ArrayList<String>();
File home = new File(SD_Path);
if (home.listFiles(new Mp3Filter()).length > 0) {
for (File file: home.listFiles(new Mp3Filter())) {
songs.add(file.getName());
}

}
return songs;
}

این هم کلاس MP3Filter که فقط لیست فایل های که شmp3 هستن رو برمی گردونه:

 class Mp3Filter implements FilenameFilter {

@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return (name.endsWith(".mp3"));
}
}

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

ListView lv = (ListView) findViewById(R.id.listView1);
final ArrayList<String> mySongs = findSongs(SD_Path);
String[] items = new String[mySongs.size()];

for (int i = 0; i < mySongs.size(); i++) {
items[i] = mySongs.get(i).replace(".mp3", "");
}
ArrayAdapter<String> adp = new ArrayAdapter<String>(getApplicationContext(), R.layout.listactivity_item, R.id.txt, items);
lv.setAdapter(adp);

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

 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
startActivity(new Intent(getApplicationContext(), Player.class).putExtra("pos", position).putExtra("songList", mySongs));

}

خوب الان توی اکتیویتی دوم هستم خوش اومدین الان باید با استفاده از مقادیری که با اینتنت فرستادیم اون آهنگ رو پخش کنیم :

        Intent i = getIntent();
Bundle b = i.getExtras();
ArrayList<String> myList = (ArrayList) b.getParcelableArrayList("songList");
int position = b.getInt("pos", 0);

و پخش آهنگ :

 Uri u = Uri.parse(Environment.getExternalStorageDirectory().toString() + "/NewFolder/" + myList.get(position).toString());
  MediaPlayeق mp = MediaPlayer.create(getApplicationContext(), u);
mp.start();

امیدوارم که مشکلی براتون پیش نیومده باشه و براتون مفید بوده باشه لایک یادت نره ؟ً!

نظرات

Hamedmtn 11 سال پیش
من کدهارو مطالعه نکردم کاملاً ، دقیقاً کار اینا به این صورته که تمام فایل های mp3 داخل گوشی رو به آرایه اضافه میکنه؟
Shadow 11 سال پیش
نه دوست گرامی فایل های رو که داخل پوشه asset پروژه گذاشتی رو توی حافظه گوشی داخل یه پوشه ذخیره می کنه و سپس اون فایل ها رو به آرایه اضافه می کنه.
morteza1366 10 سال پیش
کارت عالیه، یه مشکل داشتم یک هفته بود حل نمی شد با خوندن کد شما تونستم مشکلم رو حل کنم،دمت گرم کدی که نوشتی و درست کار میکنه رو به اشتراک میذاری.
Shadow 10 سال پیش
خواهش می کنم دوست عزیز

پاسخ‌ها 3

مهدی 10 سال پیش

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

نظرات

M.Karimi 10 سال پیش
از ویدیو دانلودر استاد استفاده کنید و در sd ذخیره کنید . و بعد از اطمینان از دانلود کامل فایل میتونید اون رو پلی کنید...
ayhan 10 سال پیش

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

ممنونم

نظرات

رامین پارسه 10 سال پیش

پرمیشناش یادت رفت دوست عزیز

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

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

چون اینجوری که گذاشتین هم فضایی از خود اپ اشغال شده هم به خاطر ذخیره سازیش

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .