2016-05-26 7 views
1

hier StringDatei nicht aus dem internen Speicher in Android spielen

/data/data/com.player/app_player/file.mp3 

bekommen E/Exception setDataSource ist: setDataSource fehlgeschlagen.

hier ist der Code:

mediaPlayer.setDataSource(context, Uri.parse("/data/data/com.player/app_player/file.mp3")); 

ich gespeichert, dass Datei mit diesem Code

getContext().getDir("player", Context.MODE_PRIVATE) 

die als /data/data/com.player/app_player

Inhalte mit derselben ist : //data/data/com.player/app_player/file.mp3 hat nicht funktioniert.

+0

Geben android Erlaubnis: Hemina

+0

Lieber, ich schon Stell es ein. – akki

Antwort

3

So löse ich es.

String musicUrl = ""; 
if (songSavedInDB()) { 
      musicUrl = "here is any file path(Internal or external)" 
      FileInputStream fileInputStream = null; 
      try { 
       fileInputStream = new FileInputStream(musicUrl); 
       mPlayer.setDataSource(fileInputStream.getFD()); 
       fileInputStream.close(); 
       mPlayer.prepare(); 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } else { 
      musicUrl = "here is url"; 
      try { 
       mPlayer.setDataSource(getContext(), Uri.parse(musicUrl)); 
       mPlayer.prepareAsync(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     }