2016-03-06 60 views
0

我有一个工作的警报接收器等,它开始我的'报警屏幕活动'。 我希望此活动能够从资源播放MP3文件作为闹钟铃声。创建自定义mp3文件的铃声 - 不工作

发现很多的问题和答案,但:-(

没有有效的解决方案,我有我的文件:... MyFirstApp \程序\ SRC \主\资源\文件夹原料

下面的代码是我活动的onCreate方法:

Uri uri_a = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
Uri uri_b = Uri.parse("android.resource://com.myapps.myfirstapp/res/raw/" + R.raw.def_alarm_tone); 
ringTone = RingtoneManager.getRingtone(getApplicationContext(), uri_b); 
ringTone.play(); 

如果我使用uri_a第3行 - 它的工作原理,并播放默认的闹钟铃声

如果我使用uri_b - 我没有得到任何声音 - 在错误日志显示java.io.FileNotFoundException

所以,对我在做什么错误的任何建议 - 或替代品/更好的解决方案?

此外,有关管理应用程序警报/提醒的建议会很好。

使用MediaPlayer作为替代报警的优点/缺点是什么?

+0

尝试包括引号 –

+0

感谢您的建议@Taylor考特尼内的报警声 - 我已经试过了 - 没有成功 – Peach

+0

见下文 –

回答

0

原来我在使用URI时遇到了问题,因为我的应用程序ID与Gradle Script(Module:app)中的软件包名称不匹配......最近我更改了我的应用程序名称。

修正了现在它按预期工作。

1

为什么你不尝试这样的事情?

MediaPlayer BG; 

.... 
BG = MediaPlayer.create(getBaseContext(), R.raw.def_alarm_tone); 
    BG.setLooping(false); 
    BG.setVolume(100, 100); 

    ... 
    //whenever you want to use it 
BG.start(); 

请确保该文件是在App RES/raw目录。

+0

感谢您的建议,考特尼·泰勒我的回答。 但我发现我的问题:-) – Peach

+0

@Peach,PLZ分享代码,我需要设置我的自定义声音作为铃声,它是如何请。 –