Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 找不到媒体播放器文件异常_Android_Android Mediaplayer - Fatal编程技术网

Android 找不到媒体播放器文件异常

Android 找不到媒体播放器文件异常,android,android-mediaplayer,Android,Android Mediaplayer,我正在编写一个基本的android mp3播放器应用程序,它使用MediaPlayer应用程序来播放本地存储在android手机上的mp3文件 但是,每当我尝试调用MediaPlayer.create()时,我都会得到一个java.io.FileNotFoundException 我已经检查过mp3是否在正确的路径上,并且我尝试过在模拟的Android和我自己的手机上运行它,但是我一直收到相同的错误 下面是我的onCreate函数,我遇到了问题: @Override protected void

我正在编写一个基本的android mp3播放器应用程序,它使用MediaPlayer应用程序来播放本地存储在android手机上的mp3文件

但是,每当我尝试调用
MediaPlayer.create()
时,我都会得到一个
java.io.FileNotFoundException

我已经检查过mp3是否在正确的路径上,并且我尝试过在模拟的Android和我自己的手机上运行它,但是我一直收到相同的错误

下面是我的onCreate函数,我遇到了问题:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + 
       "/Download/sam_stone.mp3");

    med = MediaPlayer.create(getApplicationContext(), uri);
}
下面是我得到的错误:

java.io.FileNotFoundException: /存储/模拟/0/下载/sam_stone.mp3(权限被拒绝) 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。(FileInputStream.java:146) 位于android.media.MediaPlayer.setDataSource(MediaPlayer.java:1088) 位于android.media.MediaPlayer.setDataSource(MediaPlayer.java:1067) 位于android.media.MediaPlayer.setDataSource(MediaPlayer.java:1009) 位于android.media.MediaPlayer.setDataSource(MediaPlayer.java:967) 创建(MediaPlayer.java:874) 创建(MediaPlayer.java:851) 创建(MediaPlayer.java:830) 位于hn.mediaplayer.MainActivity.onCreate(MainActivity.java:48) 位于android.app.Activity.performCreate(Activity.java:6662) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 位于android.app.ActivityThread.-wrap12(ActivityThread.java) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:154) 位于android.app.ActivityThread.main(ActivityThread.java:6077) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)


在AndroidManifest.xml中添加权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 


并在android 5.0版之上添加运行时权限

AndroidManifest.xml中添加权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 


并且在android版本5.0以上添加运行时权限

您必须在清单中添加
读取外部存储
权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

而从棉花糖和以上,你必须要求从用户


您必须在清单中添加
读取外部存储
权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

而从棉花糖和以上,你必须要求从用户


首先需要将权限添加到andiodmifest.xml文件中

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
然后,将调用权限结果,您可以在其中继续执行任务:

@Override
 public void onRequestPermissionsResult(int requestCode, String[] permissions, 
 int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(grantResults[0]== PackageManager.PERMISSION_GRANTED){
    Log.v(TAG,"Permission: "+permissions[0]+ " "+grantResults[0]);
}}

首先,您需要将权限添加到andiodmifest.xml文件中

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
然后,将调用权限结果,您可以在其中继续执行任务:

@Override
 public void onRequestPermissionsResult(int requestCode, String[] permissions, 
 int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(grantResults[0]== PackageManager.PERMISSION_GRANTED){
    Log.v(TAG,"Permission: "+permissions[0]+ " "+grantResults[0]);
}}

是否在外部下载目录中?是否在外部下载目录中?