2017-04-01 147 views
0

所以我设置了以下代码从内部存储器中选择一首歌曲并播放它。Mediaplayer没有打开选定的文件android(setDataSource失败:状态= 0x80000000)

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); 
          startActivityForResult(intent, 10); 

我onActivityResult:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if(resultCode == RESULT_OK){ 
     Uri uriSound = data.getData(); 

     play(this, uriSound); 
    } 
} 

,最后我的戏方法: 私人无效播放(上下文的背景下,开放的URI){

MediaPlayer mip = new MediaPlayer(); 
    try { 

     mip.setDataSource(context, uri); 
     mip.prepare(); 
     mip.start(); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

但是当我运行这个我不断收到以下错误:

java.io.IOException: setDataSource failed.: status=0x80000000 

我找不到任何地方的工作解决方案。 任何想法?

回答

1

在清单文件中授予读取外部存储的权限修复它!

相关问题