从内部存储路径播放音频视频文件
问题描述:
我的应用程序无法播放视频和音频文件。我使用内部存储器来保存音频视频文件。这里有我的代码视频和音频不播放错误,显示我的代码是:尝试调用虚拟方法'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();
}
}
答
使用日志语句获取的filePath
价值和fileName
我使用mp.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/......./" + name.mp3)
播放内部存储音频
答
你忘了初始化MediaPlayer。
在'mp'上调用方法前添加以下内容。
MediaPlayer mp=new MediaPlayer();