如何从R.raw设置Sound RingtoneManager

时间:2017-08-24 12:41:33

标签: java android android-mediaplayer

如何从R.raw ....

设置声音RingtoneManager

我想设置我的声音,但我不知道设置它

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();
        }

谢谢你的帮助!抱歉我的英语不好

2 个答案:

答案 0 :(得分:2)

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

我希望它可以帮到你。确保fileName是小写的。

请注意,fileName不包含任何扩展名。不要只写文件名来写任何扩展名。 例如,对于ringtone.mp3 - 写:

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

您甚至可以通过InputStream输入。

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

答案 1 :(得分:0)

如果您要将原始资源加载到MediaPlayer,请尝试以下方法:

mediaPlayer = MediaPlayer.create(context, R.raw.example);