Search code examples
javaandroidandroid-mediaplayer

How to set Sound RingtoneManager from R.raw


How to set Sound RingtoneManager from R.raw....

I want to set my sound but I have no idea to set it

Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        MediaPlayer mediaPlayer = new MediaPlayer();

        try {
            mediaPlayer.setDataSource(context, defaultRingtoneUri);
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
            mediaPlayer.prepare();
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer mp)
                {
                    mp.release();
                }
            });
            mediaPlayer.start();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

thanks for you help! and sorry my english is not good


Solution

  • int resID=getResources().getIdentifier(fileName, "raw", getPackageName());
    MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
    mediaPlayer.start();
    

    I hope it helps you. Make sure fileName is in lowercase.

    Note that fileName doesnot contain any extensions. Don't write any extension just the name of file. For Example for ringtone.mp3 - write:

    .getIndentifier("ringtone","raw",getPackageName());
    

    You can even input it via InputStream.

    InputStream ins = getResources().openRawResource(getResources().getIdentifier("fileName","raw", getPackageName()));