2016-04-27 8 views
0

Meine App funktioniert nicht bei der Wiedergabe von Video- und Audiodateien. Ich verwende internen Speicher zum Speichern der Audio-Video-Dateien. Hier ist mein Code-Video und Audio spielt nicht den Fehler zeigt meinen Code ist: Versuch, virtuelle Methode 'void android.media.MediaPlayer.setDataSource (java.lang.String) aufrufen 'auf ein null-Objekt ReferenzWiedergabe von Audio Videodateien aus dem internen Speicherpfad

public class VideoFileActivity extends Activity { 
String filePath, fileName; 
MediaPlayer mp; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_LEFT_ICON); 
    setContentView(R.layout.activity_video_dialogue); 
    getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_launcher); 
    SharedPreferences pref = getSharedPreferences("import_pkid", MODE_PRIVATE); 
    filePath = pref.getString("file_path", ""); 
    fileName = pref.getString("file_name", ""); 

    Bundle extras = getIntent().getExtras(); 
     if(extras != null){ 
      filePath = extras.getString("file_path"); 
      fileName = extras.getString("file_name"); 
     } 

     DownloadFiles(); 
     MusicPlay(); 

} 
public void DownloadFiles() { 
    //Downloads Files 
} 
public void MusicPlay() 
    { 
      try { 
       mp.setDataSource(filePath+"/"+fileName); 
      } catch (IllegalArgumentException e1) { 
       e1.printStackTrace(); 
      } catch (IllegalStateException e1) { 
       e1.printStackTrace(); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
     try { 
      mp.prepare(); 
     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     mp.setLooping(true); 
     mp.start(); 
    } 

}

Antwort

0

Verwendung Log-Anweisung zu bekommen Wert von filePath und fileName

i verwenden mp.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/......./" + name.mp3) für die Wiedergabe intern gespeichert Audios

0

Sie habe vergessen, MediaPlayer zu initialisieren.

Fügen Sie die folgenden Methoden hinzu, bevor Sie Methoden auf 'mp' aufrufen.

MediaPlayer mp=new MediaPlayer();