Mediaplayer未打开所选文件android(setDataSource失败:状态= 0x80000000)

时间:2017-04-01 09:59:49

标签: java android android-mediaplayer

所以我设置了以下代码从内存中选择一首歌并播放它。

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);
    }
}

最后我的游戏方法:      private void play(Context context,Uri 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 个答案:

答案 0 :(得分:1)

授予清单文件中的权限以读取外部存储空间固定它!