آموزش ساخت موزیک پلایر(Music Player) (پوشه Asset)
خوب امیدوارم این آموزش به دردتون بخوره چون من خیلی روش کار کردم تا به نتیجه رسیدم پس (تشکر)-(لایک) یادتون نره ؟!
من زیاد توضیح نمی دم چون سخت نیست .
میریم سراغ کدها :
ابتدا فایل های موجود در پوشه 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();
امیدوارم که مشکلی براتون پیش نیومده باشه و براتون مفید بوده باشه لایک یادت نره ؟ً!
اگه بخوایم آهنگ رو از اینترنت دانلود بعد پخشش کنیم ، چی کار باید کرد ؟
از دوستان کسی سورس برنامه بالا رو داره میتونه در اختیارم بزاره تو یه قسمتهایی به ارورر برمیخورم که گیر میکنم
ممنونم
پرمیشناش یادت رفت دوست عزیز
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
در کل بهتر بود با استفاده از position توی لیست ویو میذاشتی آهنگی که میخوان رو ذخیره کنن
چون اینجوری که گذاشتین هم فضایی از خود اپ اشغال شده هم به خاطر ذخیره سازیش
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .