2016-04-27 3 views
0

My appは、ビデオとオーディオファイルの再生には使用できません。オーディオビデオファイルを保存するために内部ストレージを使用しています。私のコードビデオとオーディオは、私のコードを示すエラーを再生しません:仮想メソッドを呼び出すしようとしました 'void android.media.MediaPlayer.setDataSource(java.lang.String) filePathfileName内部ストレージパスからオーディオビデオファイルを再生する

の値を取得するには「nullオブジェクト参照の

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

}

答えて

0

使用履歴書私は、内部的に再生するためmp.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/......./" + name.mp3)を使用オーディオに

0

を保存しますMediaPlayerを初期化するのを忘れました。

「mp」でメソッドを呼び出す前に、以下を追加してください。

MediaPlayer mp=new MediaPlayer(); 
関連する問題