Java 安卓:设置铃声,一切正常,但没有';声音太小,无法播放

Java 安卓:设置铃声,一切正常,但没有';声音太小,无法播放,java,android,eclipse,playback,ringtone,Java,Android,Eclipse,Playback,Ringtone,我正在做我的第一个应用程序:我想把一个按钮设置成.mp3作为铃声,一切正常,Logcat和eclipse没有显示任何错误,但当我打电话(在模拟器和真实手机中)时,它不会响!此外,当我进入“音乐”应用程序并尝试播放这些铃声(我在“最近添加”中找到它们)时,它会显示:“对不起,播放器不支持音频文件类型” 我做错了什么 这是我的密码: setringtone.setOnClickListener(new OnClickListener() { @Override

我正在做我的第一个应用程序:我想把一个按钮设置成.mp3作为铃声,一切正常,Logcat和eclipse没有显示任何错误,但当我打电话(在模拟器和真实手机中)时,它不会响!此外,当我进入“音乐”应用程序并尝试播放这些铃声(我在“最近添加”中找到它们)时,它会显示:“对不起,播放器不支持音频文件类型”

我做错了什么

这是我的密码:

 setringtone.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                        Toast msg = Toast.makeText(TonosSet.this, "Sound set as ringtone!", Toast.LENGTH_LONG);
                        msg.show();

                        File k = new File("/sdcard/media/ringtone", "song_file.mp3");
                        Uri mUri = Uri.parse("android.resource://com.app/"+R.raw.song_file);
                        ContentResolver mCr = getContentResolver();
                        AssetFileDescriptor soundFile;
                        try {
                            soundFile= mCr.openAssetFileDescriptor(mUri, "r");
                        } catch (FileNotFoundException e) {
                            soundFile=null;   
                        }

                        try {

                            InputStream ins = TonosSet.this .getResources().openRawResource (R.raw.song_file);
                                    byte[] buffer = new byte[ins.available()];
                                    ins.read(buffer);
                                    ins.close();
                                    String filename = Environment.getExternalStorageDirectory().toString()+File.separator+R.raw.song_file;
                                    FileOutputStream fos = new FileOutputStream(filename);
                                    fos.write(buffer);
                                    fos.close();
                        } catch (IOException io) {
                        }

                        ContentValues values = new ContentValues();  
                        values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());  
                        values.put(MediaStore.MediaColumns.TITLE, "Name sound");  
                        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");  
                        values.put(MediaStore.Audio.Media.ARTIST, "Artist");  
                        values.put(MediaStore.Audio.Media.IS_RINGTONE, true);  
                        values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);  
                        values.put(MediaStore.Audio.Media.IS_ALARM, true);  
                        values.put(MediaStore.Audio.Media.IS_MUSIC, false);  

                        //Insert it into the database  
                        Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());

                        getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);

                        Uri newUri = getContentResolver().insert(uri, values);

                        RingtoneManager.setActualDefaultRingtoneUri(
                            TonosSet.this,
                            RingtoneManager.TYPE_NOTIFICATION,
                            newUri);

            }
            });

请帮帮我,我不知道该怎么办,我已经找了5个小时的解决方案,但我不能=(

也许你应该看看下面的帖子,它似乎给出了一个不同于你的版本(关于isNotification和其他参数)


也许你应该看看下面的帖子,它似乎给出了一个与你不同的版本(关于isNotification和其他参数)


“当我转到“音乐”应用程序并尝试播放这些铃声(我在“最近添加”中找到它们)时,它会显示以下内容:“对不起,播放器不支持音频文件类型”。”也许你应该尝试另一个音乐文件?你确定你尝试读取的格式与系统兼容吗?如果你无法使用音乐播放器读取它,你的代码似乎无法正常工作。在web上随机选择一个mp3,然后使用它。我会尝试,也许如果我更改.mp3文件的比特率,它可以工作。好吧,我的应用程序已经成功了还有一个“播放”按钮,当我按下该按钮时,.mp3文件正常播放,这就是为什么我不认为我的.mp3文件已损坏或类似的原因。我不知道该怎么办=(“当我转到“音乐”应用程序并尝试播放这些铃声(我在“最近添加”中找到它们)时,它会显示:“对不起,播放器不支持音频文件类型”。”也许你应该尝试另一个音乐文件?你确定你尝试读取的格式与系统兼容吗?如果你无法使用音乐播放器读取它,你的代码似乎无法正常工作。在web上随机选择一个mp3,然后使用它。我会尝试,也许如果我更改.mp3文件的比特率,它可以工作。好吧,我的应用程序已经成功了还有一个“播放”按钮,当我按下它时.mp3文件正常播放,这就是为什么我认为我的.mp3文件没有损坏或类似的东西。我不知道该怎么做=(不,它对我的问题不起作用=(我不知道该怎么做=(不,它对我的问题不起作用=(我不知道该怎么做=(