2

发挥我在Android开发初学者。我需要从原始文件播放媒体STREAM_ALARM我的闹钟。我发现了一个类似的问题在这里: Android MediaPlayer - how to play in the STREAM_ALARM?MediaPlayer的:如何在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是在原文件夹中确实存在。实际位置:app/src/main/res/raw。 Android的工作室播放媒体精细,当我使用这个代码:

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

那么,怎样才能找到我的Uri.parse功能文件?

回答

0

改变这一行

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

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

希望那么它会正常工作。谢谢。

+0

非常感谢你。你已经救了我的工作。简单编辑:在getPackageName之后添加()。 –

+0

不用客气。 –

+0

জুয়েলরানাভাই,আপনিরাজশাহীরলোকদেখলাম。 আপনারঅ্যাপটাওদেখলাম,দারুণহয়েছে。 আমিডেভেলপিংশিখতেছি。 আপনারসাথেব্যক্তিগতভাবেযোগাযোগকরতেচাই,টিপসনিতামআরকি。 ইমেইলবাফেসবুকআইডিদিবেনআপনার? –