使用自定义mp3文件创建铃声 - 无法正常工作

时间:2016-03-06 00:54:46

标签: android uri alarm

我有一个工作的警报接收器等,它启动我的警报屏幕活动'。 我希望这个活动能够从资源中播放MP3文件作为警报音。

发现了许多问题和答案,但没有可行的解决方案: - (

我的文件位于:... MyFirstApp \ app \ src \ main \ res \ raw folder

以下代码位于我的活动的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();

如果我在第3行使用uri_a - 它可以工作并播放默认闹钟铃声。

如果我使用uri_b - 我没有声音 - 日志中的错误显示java.io.FileNotFoundException

那么,关于我做错了什么的建议 - 还是替代方案/更好的解决方案???

此外,有关管理应用警报/提醒的一些建议也不错。

使用MediaPlayer作为替代方案的警示有哪些优缺点?

2 个答案:

答案 0 :(得分: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目录中。

答案 1 :(得分:0)

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

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