sherlock0111

انتخاب آهنگ از لیست به عنوان زنگ گوشی (خیلی ضروری)

4 ارسال در این موضوع قرار دارد

سلام خدمت دوستان گرامی یه مدتی میشه دنبال جواب این سوال هستم اگه کسی باشه کمکم کنه خیلی ممنون میشم من یه لیست از آهنگ های داخل پوشه asset رو توی یه لیست ویو گذاشتم و با کلیک برروی هر اهنک به اکتویتی دیگه میره و اونجا پخش میشه حالا می خوام اون اهنگی رو که داره پخش میشه رو به عنوان زنگ گوشی انتخاب کنم ولی توی یه قسمتیش موندم من کد رو میزارم لطفا جواب بدیذ

Intent i = getIntent();
       Bundle b = i.getExtras();
       myList = (ArrayList) b.getParcelableArrayList("songList");
       position = b.getInt("pos");

   }


   @Override
   public void onBackPressed() {
       // TODO Auto-generated method stub
       super.onBackPressed();
       if (mp.isPlaying()) {

           mp.stop();
           mp.release();
           mp = new MediaPlayer();
       }
   }


   @Override
   public void onClick(View v) {
       int id = v.getId();
       switch (id) {
           case R.id.btPlay:
               Uri u = Uri.parse(myList.get(position).toString());

               mp = new MediaPlayer();
               AssetFileDescriptor afd;
               try {
                   afd = getAssets().openFd(u.toString());
                   mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                   Log.i("", afd.getFileDescriptor() + "");
                   Log.i("", afd.getStartOffset() + "");
                   Log.i("", afd.getLength() + "");
                   Log.i("", getAssets().openFd(u.toString()) + "");
                   mp.prepare();

                   mp.start();

               }

               catch (IOException e) {
                   e.printStackTrace();
               }
               break;
           case R.id.btStop:
               if (mp.isPlaying()) {
                   mp.stop();
                   mp.release();
                   mp = new MediaPlayer();
               }
               break;
           case R.id.seRing:

               /*  File k = new File(u, afd);
                 ContentValues values = new ContentValues();
                 values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
                 values.put(MediaStore.MediaColumns.TITLE, "My Song title");
                 values.put(MediaStore.MediaColumns.SIZE, 215454);
                 values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
                 values.put(MediaStore.Audio.Media.ARTIST, "Madonna");
                 values.put(MediaStore.Audio.Media.DURATION, 230);
                 values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
                 values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
                 values.put(MediaStore.Audio.Media.IS_ALARM, false);
                 values.put(MediaStore.Audio.Media.IS_MUSIC, false);

                 //Insert it into the database
                 Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
                 Uri newUri = this.getContentResolver().insert(uri, values);

                 RingtoneManager.setActualDefaultRingtoneUri(
                         Player.this,
                         RingtoneManager.TYPE_RINGTONE,
                         newUri
                         ;*/

               break;
       }
   }
}

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


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

سلام

 

اینا رو بخون کمکت میکنه

http://www.kelidestan.com/keys/categories.php?MainCategory=2&SubCategory=8

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


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

سلام

 

اینا رو بخون کمکت میکنه

http://www.kelidestan.com/keys/categories.php?MainCategory=2&SubCategory=8

نه متاسفانه مشکل من با اینا حل نمیشه لطفا سوال رو خوب بخونید و کدها رو نگاه کنید

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


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

منظور شما رو متوجه نشدم. ببینید برای set کردن یک آهنگ باید اول intent انتخاب ringtone رو باز کنید بعدش آهنگ خودتون رو توش قرار بدید :

Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, RingTonePath);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, RingTonePath);
startActivityForResult(intent , PICK_RINGTONE);

خب برای به دست اوردن آدرس آهنگ هم :

Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
   if (uri != null) {
   String ringTonePath = uri.toString();
}

بعد با استفاده از کلاس RingToneManager اقدام به ثبت آهنگ به عنوان زنگ کنید

       RingtoneManager.setActualDefaultRingtoneUri(
       ApplicationContext,
       RingtoneManager.TYPE_RINGTONE,
       RingTonePath);

بیشتر خواستید : developer.android.com/reference/android/media/RingtoneManager.html

راستی فراموش نکنید که باید permission داشته باشید :‌


اینم توی stackoverflow پیدا کردم تست کنید :‌

public void pickRingtone(View view) {
       // TODO Auto-generated method.   stub

       Intent intent = new.       Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
       intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
               RingtoneManager.TYPE_RINGTONE);
       intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Ringtone");

   // for existing ringtone
       Uri urie =     RingtoneManager.getActualDefaultRingtoneUri(
               getApplicationContext(), RingtoneManager.TYPE_RINGTONE);
       intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, urie);

   startActivityForResult(intent, 5);
}

واقعا زحمت کشیدم ! دستم درد نکنه :D

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری