我有一个应用程序,使用内置摄像头录制视频,然后上传到网络服务器。视频以mp4和3gp格式保存。拍摄视频的代码摘录如下:
// External sdcard location
File mediaStorageDir = new File(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
IMAGE_DIRECTORY_NAME);
// Create the storage directory if it does not exist
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
+ IMAGE_DIRECTORY_NAME + " directory");
return null;
}
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date());
String mediaFile2;
File mediaFile;
if (type == MEDIA_TYPE_IMAGE) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + ".jpg");
preview_uri=mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + ".jpg";
pathname="IMG_" + timeStamp + ".jpg";
} else if (type == MEDIA_TYPE_VIDEO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "VID_" + timeStamp + ".3gp");
preview_uri= mediaStorageDir.getPath() + File.separator
+ "VID_" + timeStamp + ".3gp";
pathname="VID_" + timeStamp + ".3gp";
} else {
return null;
}
我使用php脚本上传它们,我使用filezilla确认它们实际上位于“video”文件夹中。此外,在我的Web浏览器中键入地址,打开下载对话框以开始下载文件。
但是,当我想在应用程序中播放该文件时,它会失败并显示错误消息:
"sorry, this video is not valid for streaming to this device"
此错误与mp4和3gp文件相同。视频视图的代码是:
video.setMediaController(new MediaController(this));
video.setVideoPath(path);
video.requestFocus();
video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
video.start();
}
});
此外,logcat中没有显示错误,并且我的笔记本电脑上的视频播放vlc媒体播放器。我怎么解决这个问题?