gpt4 book ai didi

java - 媒体播放器 : how to Play in STREAM_ALARM

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:22 32 4
gpt4 key购买 nike

我是android开发的初学者。我需要将原始文件中的媒体作为闹钟的 STREAM_ALARM 播放。我在这里发现了类似的问题: Android MediaPlayer - how to play in the STREAM_ALARM?

接受的答案就像该链接上的那样:

MediaPlayer mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_ALARM);
mp.setDataSource(this,Uri.parse("android.resource://PACKAGE_NAME/"+R.raw.soundfile));
mp.prepare();
mp.start();

我的项目的第一行是这样的:

package buet.mushfiq.classfriendsupport;

因此,我使用 buet.mushfiq.classfriendsupport 作为我的项目名称,并以这种方式实现代码:

Uri uri = Uri.parse("android.resource://buet.mushfiq.classfriendsupport/"+R.raw.mytone);
MediaPlayer mp=new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_ALARM);
try{
mp.setDataSource(this,uri);
mp.prepare();
mp.start();}
catch (Exception e){
}

但不幸的是没有音频播放并且 android studio 显示此错误:

setDataSource IOException | SecurityException happend: 
java.io.FileNotFoundException: No package found for authority:
android.resource://buet.mushfiq.classfriendsupport/2131099648

mytone.mp3 肯定存在于 raw 文件夹中。实际位置:app/src/main/res/raw。当我应用此代码时,Android studio 可以很好地播放媒体:

mp = MediaPlayer.create(this, R.raw.mytone);
mp.start();

那么如何在 Uri.parse 函数中找到我的文件?

最佳答案

更改此行

  Uri uri = Uri.parse("android.resource://buet.mushfiq.classfriendsupport/"+R.raw.mytone);

Uri uri = Uri.parse("android.resource://"+this.getPackageName()+"/"+R.raw.mytone);

希望它能正常工作。谢谢。

关于java - 媒体播放器 : how to Play in STREAM_ALARM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46755099/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com