اشتراک گذاری فایل صوتی mp3 از پوشه raw
سلام و عرض ادب.
طاعاتتون مورد قبول حق.
تو اشتراک فایل از پوشه raw به مشکلی برخوردم ، از دوستان و اساتید میخوام لطف کنن و راهنمایی کنن...
اگر بخوام اصولی سوالمو بپرسم ، میگم میخوام فایل صوتی ای که تو پوشه raw هستش رو با share intent به اشتراک بذارم ، میخواستم بدونم چه راهی اصولیه؟
و اینکه امکانش هست بدون اینکه فایل تو sd کارت کپی بشه ، بطور مستقیم به اشتراک گذاشت یا نه؟
ببیند با همین کدی که پایین تر گذاشتم، لیست برنامه هایی که میتونن فایل رو به اشتراک بذارن رو میاره ، مثل بلوتوث و share it و ...
اما وقتی روی برنامه ای که میخوام با اون اشتراک بذارم کلیک میکنم ، پیام میده unable to open file ، ینی نمیتونه فایل رو باز کنه...
سپاسگزارم...
String filename = "item5.mp3";
Uri uri = Uri.parse("android.resource://ir.skydt.player/drawable/raw/" + filename); Intent share = new Intent(Intent.ACTION_SEND); share.setType("audio/*"); share.putExtra(Intent.EXTRA_STREAM, uri); G.currentActivity.startActivity(Intent.createChooser(share, "اشتراک از طریق :"));
رضا جان مرحله به مرحله برو جلو
1- آهنگ هارو از Raw به Assets منتقل کن (فعلا زیپ نکن)
2- دیتابیس بساز (شامل 2 فیلد : آیدی آهنگ و نام آهنگ)
3- توی کلاس G یا هر کلاسی (اگر من باشم یک MusicPlayerHelper میسازم) یک فولدر توی Sd_Card بساز (مثلا به نام myappname_musics)
4- برای نمایش لیست موزیک ها (توی لیست ویو) فقط کافیه از دیتابیس نام و آیدی رو بخونی و توی آداپترت ست کنی(میتونه آیکن هم داشته باشه)
5- وقتی روی دکمه play کلیک شد، باید ببینی نام فایل توی اون فولدره که درست کردی وجود داره یا نه(myappname_musics)
- اگر وجود نداشت از Assets فایل رو کپی کن توی اون فولدر، اگر وجود داشت هم play کن.
6- برای اینکه اون آهنگ ها توی موزیک پلیر ها نمایش داده نشن میتونی یک فایل به نام .nomedia توی اون فولدر قرار بدی.
7- همه این کارها رو که کردی و درست کار کرد، یک کلاس بساز که فایل زیپ رو اکسترکت کنه(اگر میخوای زیپ کنی)
- بعد همه آهنگ هارو دونه دونه زیپ کن و هرکدوم که نیاز داشتیو اول آنزیپ کن و بعد play کن
مزایا
1- این روش کاملا داینامیکه و برای اضافه و حذف آهنگ هیچ مشکلی نداری
2- حجم برنامه کمی کمتر میشه (ولی یادگیری استفاده از فایل زیپ در آینده میتونه خیلی بدردت بخوره)
3- اگر در آینده بخوای آهنگ های جدید رو از وب دانلود کنی بسیار ساده میتونی بگی اگر توی مموری وجود نداشت از وب دانلود کن
4- ارسال آهنگ ها از Assets بسیار راحت و بدون هیچ گونه دردسره
5- قابلیت اضافه کردن عکس به لیست ها، تایتل آهنگ، لیریکس و ...
6- میتونی یک Helper ازش بسازی و توی تمام پروژه هات ازش استفاده کنی
موفق باشی ;)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .