آموزش خواندن audio از پوشه assets در اندروید
سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش خواندن audio از پوشه assets در اندروید می پردازیم شاید برخی تصور داشته باشند چرا فایل را در پوشه assets قرار دهیم و از SdCard نخوانیم دلایل موجود برای اینکار را ذکر خواهیم کرد در ادامه با ما همراه باشید.
چرا از پوشه assets استفاده می شود ؟ مزایا و معایب آن چیست ؟
assets به گونه ای یک Directory است که شما بدون نیاز به هیچ گونه دسترسی می توانید به آن دسترسی داشته باشید در صورتی که از SDCard گوشی یا حافظه External آن استفاده کنید در api 21 به بالا شما نیاز به RuntimePermission دارید استفاده از آن سخت نیست ولی شاید بهتر باشد زیاد با کاربر درگیر نشوید در مواردی که شما داده static دارید بهترین حالت استفاده از پوشه assets یا پوشه raw است (در پست های بعدی این پوشه را نیز معرفی خواهیم کرد) ولی در حالتی که شما داده dynamic دارید بهترین پیشنهاد استفاده از حافظه گوشی یا External Storage است.
مزایای پوشه assets
- نداشتن دسترسی
- محدود بودن به 1 مگ حجم هر فایل (بایکسری دستورات می تونید فایل خودتان را تکه تکه کنید سپس آنها را بهم متصل کنید)
- استفاده آسان
- قبول کننده هر نوع داده ای اما در بعضی موارد ماهیت فایل تغییر می کند مثلا فایل gif نمی تواند در assets قرار گیرد.
معایب پوشه assets
- محدودیت در حجم یک فایل
- افزایش حجم برنامه
- اطلاعات در پوشه assets به سادگی قابل دریافت شدن توسط دیگران است پس هیچ امنیتی ندارد !
برای اینکه پوشه assets بسازید از آموزش زیر استفاده کنید.
آموزش ایجاد فولدر assets در برنامه نویسی اندروید
برای اینکه یک فایل audio رو از پوشه assets بخوانیم می توانیم مثل زیر عمل کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class PlayerExample { MediaPlayer mediaPlayer = null; public void playSound(final Context context, final String fileName) { mediaPlayer = new MediaPlayer(); try { AssetFileDescriptor afd = context.getAssets().openFd(fileName); mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close(); mediaPlayer.prepare(); } catch (final Exception e) { e.printStackTrace(); } mediaPlayer.start(); } } |
در بالا یک کلاس داریم سپس یک متود در آن نوشتیم که عمل خواندن را انجام میدهد و فقط کافی است context مربوط به آن اکتیویتی و نام فایل را به آن پاس بدهید.
مثل زیر می توانیم از آن استفاده کنیم.
1 2 | PlayerExample playerexample = new PlayerExample(); playerexample.playSound(programchiActivity.this,"notification.mp3") |
در بالا ما در پوشه assets خود یک فایل به نام notification.mp3 قرار داده ایم و به همین سادگی با استفاده از void بالا audio شما play خواهد شد.
موفق باشید.
سلام.
اگر براتون مقدور هست طریقه خواندن و ست کردن تصویر از این پوشه درون ایمیج ویو اموزش بدید.