准备MediaPlayer时出错

时间:2018-08-08 15:46:19

标签: android path uri android-mediaplayer android-external-storage

我的应用程序包括从用户SD卡上传单个媒体文件并将其上传到列表视图。它自己的那一部分,完美地工作。每个uri都保存在SQlite数据库下,该数据库也将文件保存在listview中。

但是,现在我试图在itemClick上获取其路径和URI,以便能够开始播放所需的任何音频文件。

问题是开始准备URI时出现错误。我不确定是否正确格式化了所有内容,因为收到此错误:

08-18 13:11:12.790 24401-25067/com.example.daniel.queue E/MediaPlayerNative: error (1, -2147483648)

我知道此错误可能意味着几件事,但是请告诉我是否正确格式化URI或路径。我拥有我的权限,所以这不是问题。我认为这可能是格式问题,但我尚未找到解决方案。

private void ItemClick() {

    user_music_reccomadatons.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            String pos = adapterView.getItemAtPosition(position).toString();
            Uri uriFile = Uri.fromFile(new File(pos));  //creates a Uri from a file
            String pathFile =   uriFile.getEncodedPath();  //gets coded path
            String path = Environment.getExternalStorageState() + pathFile;
            MediaPlayer mp = new MediaPlayer();
            try {
                mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
                mp.setDataSource(getApplicationContext(), uriFile);
                Log.d("DATA SOURCE"," GOT DATA SOURCE " + path);

            } catch (IOException e) {
               Log.d("ERROR", "ERROR ON SETDATASOURCE");
            }
            try {
                mp.prepare();
                Log.d("Success!","");
            } catch (IOException e) {
                Log.d("error", " ERROR PREPARING");

            }


            Log.d("data", "URI: "+ uriFile + " PATH "+ pathFile);
            Log.d("ENVI PATH", " path: "+ path);





              }
    });
}

0 个答案:

没有答案