رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

انتخاب آهنگ sms از بین چند آهنگ


پست های پیشنهاد شده

چطور میشه چندتا آهنگ sms را در یک فرم قرار داد بطوریکه کاربر با انتخاب یکی بتونه اون را به عنوان زنگ smsش در نظر بگیره.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با سلام 

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

File k = new File(path, "mysong.mp3"); // path is a file to /sdcard/media/ringtoneContentValues values = new ContentValues();values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());values.put(MediaStore.MediaColumns.TITLE, "esme ahang");values.put(MediaStore.MediaColumns.SIZE, 215454);values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");values.put(MediaStore.Audio.Media.ARTIST, "shajarian");values.put(MediaStore.Audio.Media.DURATION, 230);values.put(MediaStore.Audio.Media.IS_RINGTONE, false);values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);values.put(MediaStore.Audio.Media.IS_ALARM, false);values.put(MediaStore.Audio.Media.IS_MUSIC, false);//Insert it into the databaseUri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());Uri newUri = main.getContentResolver().insert(uri, values);RingtoneManager.setActualDefaultRingtoneUri( myActivity, RingtoneManager.TYPE_RINGTONE, newUri);

و اگر بخواید از میان چند آهنگ انتخاب کنید می توانید در listview قرار بدهید و هنگام کلیک بر روی listview آهنگ رو انتخاب کنه ! اگر مشکلی بود بگید کمکتون کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

1- فایل صوت را می خواستم با استفاده از push file to device در DDMS در پوشه sdcard کپی کنم ولی قبول نکرد؟نباید در بخش res از پروژه کپی کنم؟

2-ببخشید من هنوز نفهمیدم که بعد از اجرای این کد دقیقا چه اتفاقی میفته؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا فرزاد کمی در این چند روز مشغله کاری دارند وگرنه از کمک به کاربران انجمن دریغ نمی کنند و در مورد مشکلتون می تونم بگم اول که از فایل raw فکر نکنم بشه موزیکی رو به عنوان رینگتون یا غیره انتخاب کرد ولی باید اون آهنگ رو در sdcard کپی کنید که به وسیله کد زیر امتحان کنید :

File newSoundFile = new File("/sdcard/media/ringtone", "myringtone.oog");Uri mUri = Uri.parse("android.resource://com.your.package/R.raw.your_resource_id");ContentResolver mCr = app.getContentResolver();AssetFileDescriptor soundFile;try {      soundFile= mCr.openAssetFileDescriptor(mUri, "r");  } catch (FileNotFoundException e) {      soundFile=null;     }  try {     byte[] readData = new byte[1024];     FileInputStream fis = soundFile.createInputStream();     FileOutputStream fos = new FileOutputStream(newSoundFile);     int i = fis.read(readData);     while (i != -1) {       fos.write(readData, 0, i);       i = fis.read(readData);     }     fos.close();  } catch (IOException io) {  }
 ContentValues values = new ContentValues();  values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());  values.put(MediaStore.MediaColumns.TITLE, "my ringtone");  values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");  values.put(MediaStore.MediaColumns.SIZE, newSoundFile.length());  values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);  values.put(MediaStore.Audio.Media.IS_RINGTONE, false);  values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);  values.put(MediaStore.Audio.Media.IS_ALARM, false);  values.put(MediaStore.Audio.Media.IS_MUSIC, false);  Uri uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile.getAbsolutePath());  Uri newUri = mCr.insert(uri, values);  try {      RingtoneManager.setActualDefaultRingtoneUri(getContext(), RingtoneManager.TYPE_RINGTONE, newUri);  } catch (Throwable t) {      Log.d(TAG, "catch exception");  }

و اینکه این قسمت رو یادم رفت بگم درmanifest دسترسی زیر رو قرار بدهید :


لینک ارسال
به اشتراک گذاری در سایت های دیگر

این خط File newSoundFile = new File("/sdcard/media/ringtone", "myringtone.oog");

من فایل صوتی را با چه فرمتی و کجا  کپی کنم؟ اصلا در پوشه sdcardمن پوشه media وجود ندارد!! myringtone.oog چیه؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

:دی من چند روزی دسترسی به اینترنت ندارم ببخشید اگر دیر جواب می دهم شما فایل صوتی تون رو در raw قرار بدهید و نام فایل رو در این خط

Uri mUri = Uri.parse("android.resource://com.your.package/R.raw.your_resource_id");

وارد کنید , فراموش نکنید نام پکیج رو هم در اینجا وارد کنید بعد در این خط هم :

File newSoundFile = new File("/sdcard/media/ringtone", "myringtone.oog");

نام myringtone.oog نام آهنگ شماست مثلا shajariyan.mp3 و همچنین بیشتر گوشی ها در sdcard فایلی به نام media وجود داره خب اگر نداشت شما می توانید یا پوشه ایجاد کنید به وسیله کد یا هم در خود sdcard برزید آهنگ هاتون رو ! به وسیله این کد ها آهنگ از پوشه raw به sdcard کپی میشه 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کپی فایل درون sdcard با موفقیت انجام شد و در برنامه emulator هم تست کردم جزو زنگهای گوشی اضافه شده بود فقط علی رغم عملکرد درست خطای زمان اجرا هم میده علتش چیه؟؟رفتم تا با debug ببینم خطا مربوط به کچاست ولی با F6 از حلقه while خارج نمی شد ظاهرا خیلی طول میکشه برای همین کنسلش کردم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

پیشاپیش ممنون( اگه هر چه سریعتر بررسیش کنید فوق العاده ممنون می شوم)

فایل پیوست : http://www.mediafire.com/download/jygtacuba7zldii/Ringtone.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...