سلام خسته نباشید
سوال داشتم در مورد این که ایا استاد در جلو به در یافت موزیک از حافظه خود گوشی اشاره خواهند کرد اگر نه چطور می تونیم این کار رو انجام بدیم؟؟
سلام و احترام
در سرفصل قبل شما کار با فایل ها اشنا شدید و برای عمیق تر شدن نیاز به خواندن داکیومنتیشن مربوطه و خواندن مقاله ها و ویدیو های مرتبط با نیاز شما هست .
چرا که موارد مربوط به فایل ها تغییراتی زیادی رو داشته اند و شما برای اپدیت شدن نیاز به دانش بیرونی دارید و اصلا اینطور نیست که پس از دیدن هر سرفصل فکر کنید دیگر به خواندن و یادگیری ان موضوع نیازی ندارید.
پیشنهاد من به شما علاوه بر مطالعه منابع بیرونی خواندن سورس کد های مختلف هست که در یادگیری شما بسیار موثر هست
اما من ویدیویی در مورد نیاز شما براتون در لینک زیر میذارم
لینک مورد نظر :
https://www.youtube.com/watch?v=tUL8s484CzM
دوست عزیز برای استفاده از فایل های مدیا از حافظه باید از کتابخونه MediaStore استفاده کنی و به حافظه گوشی query بزنی من این قطعه کد رو برای music player خودم نوشته بودم البته زبان کاتلینه ولی باز فکر کنم طریقه استفاده کردن ازش دستت میاد.
override fun scanTracks(): ArrayList<Track> {
val array = ArrayList<Track>()
val uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
val projection = arrayOf(MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ALBUM_ID)
val selection = "${MediaStore.Audio.Media.IS_MUSIC} != 0"
val sortOrder = "${MediaStore.Audio.AudioColumns.TITLE} COLLATE LOCALIZED ASC"
val cursor = context.contentResolver.query(uri, projection, selection, null, sortOrder)
if(cursor != null) {
cursor.moveToFirst()
while(!cursor.isAfterLast) {
val id = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media._ID)).toLong()
val title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE))
val artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST))
val data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA))
val duration = Track.convertDuration(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)).toLong())
val albumId = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)).toLong()
cursor.moveToNext()
array.add(Track(id, title, artist, data, duration, albumId))
}
cursor.close()
}
return array
}