播放内部存储路径中的音频视频文件

时间:2016-04-27 11:09:54

标签: android media-player

我的应用无法播放视频和音频文件。我使用内部存储来保存音频视频文件。我的代码视频和音频没有播放错误显示我的代码是:尝试调用虚方法'void android.media.MediaPlayer.setDataSource(java.lang.String) '在空对象引用上

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

}

2 个答案:

答案 0 :(得分:0)

使用log语句获取filePathfileName

的值

我使用mp.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/......./" + name.mp3)播放内部保存的音频

答案 1 :(得分:0)

您忘记初始化MediaPlayer。

在调用方法之前添加以下内容' mp' 。

 MediaPlayer mp=new MediaPlayer();